Hallo Community
Ich würde gerne versuchen selber ein Chart control in WPF zu entwickeln.
Welche Art von Chart es sein soll spielt zur Zeit keine Rolle. Meine Frfage betrifft eher das Zeichnen.
Das Chart control würde ich gerne direkt unter System.Windows.Controls.Control ansetzen. Mir ist allerdings gänzlich unklar, wie ich dort etwas grafisch darstellen kann. Ich habe über den Sourcecode der vorhandenen WPF Controls geschaut (Referenz Sourcecode) in der Hoffnung, etwas zu finden. Da wurde ich leider endtäuscht.
In den *.cs Dateien der WPF controls is absolut nichts von Rendering oder dergleichen zu finden. Ich hätte beispielsweise beim Buttoncontrol sowas wie eine OnRender-Methode erwartet, wo der Hintergrundverlauf für den Button erstellt wird. Offenbar müssen sich diese Angaben in einer *.XAML-Datei befinden, die im Referenz Sourcecode allerdings nicht vorhanden sind. Daraus folgt aber wiederum die Frage, wo diese XAML-Datei geladen wird?
Meine Frage lautet daher, wo der visuelle Teil von WPF controls definiert und geladen wird?
Freundliche Grüsse
Samuel
Hi Doltsche,
bevor du eigene Controls erstellen willst (und vor allem so komplexe wie Charts), solltest du dich zuerst einmal mit den Grundlagen von WPF beschäftigen. Offenbar hast du noch völlig falsche (Windows-Forms-behaftete) Vorstellungen, wie das dort funktioniert.
Christian
Weeks of programming can save you hours of planning
Hallo Doltsche,
ich kann MrSparkle nur zustimmen und dir einige Stichworte auf den Weg geben. Das was du suchst fällt unter CustomControls
, bei welchen du zur genüge Tutorials findest. Der Style wird generell in der Generics.xaml
erstellt. Weiteres solltest du dich sehr gut in DependencyProperties
einlesen.
Sollte alle diese Grundkenntnisse nicht vorhanden sein wird es leider nichts mit dem Erstellen einer eigenen Komponente.
Gruß
Michael
Hm, ich lag doch richtig mit meinem OnRender().
Ich habe erst später im VisualTree entdeckt, dass sich unterhalb des Buttons ein ButtonChrome ansiedelt. Der Quellcode dieser Klasse wiederum beinhaltet sämtliche prozeduralen Methoden, daneben OnRender() zum Zeichnen des Buttons 😉.
Gruss Samuel
Das OnRender ist nur die halbe Wahrheit. Dort gibt man an, was man gerne gezeichnet hätte. Was am Ende rauskommt, kann wesentlich anders sein, da durch z.B. Transparenzen, Animationen, Transformationen oder Effekte, der Output noch vor dem Rendern geändert werden kann.
Selber brauch man im OnRender aber nur ganz selten zeichnen, nur für so LowLevel Sachen wie z.B. den ButtonChrome. In WPF werden Controls in der Regel durch Komposition erstellt, siehe ja auch dein Button welcher ein ButtonChrom nutzt + Ein ContentPresenter für den Inhalt etc.
Baka wa shinanakya naoranai.
Mein XING Profil.
Mein Tip, bevor Du über das selbst erstellen eines Control in WPF nachdenkst, solltest Du zumindest einmal ein WPF Buch gelesen haben.
Bei WPF ist nichts mehr so, wie man das von WinForms kennt.