Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wie funktioniert die Visualisierung von WPF Controls
Doltsche
myCSharp.de - Member



Dabei seit:
Beiträge: 255
Herkunft: Schweiz

Themenstarter:

Wie funktioniert die Visualisierung von WPF Controls

beantworten | zitieren | melden

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
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Doltsche am .
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5991
Herkunft: Leipzig

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
xxMUROxx
myCSharp.de - Member

Avatar #avatar-3236.jpg


Dabei seit:
Beiträge: 1626
Herkunft: Südtirol/Italien

beantworten | zitieren | melden

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
Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp
private Nachricht | Beiträge des Benutzers
Doltsche
myCSharp.de - Member



Dabei seit:
Beiträge: 255
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Hallo

Besten Dank für euere Antworten .

Freundliche Grüsse

Samuel
private Nachricht | Beiträge des Benutzers
Doltsche
myCSharp.de - Member



Dabei seit:
Beiträge: 255
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

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
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Doltsche am .
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 7290
Herkunft: Esslingen

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Stipo
myCSharp.de - Member

Avatar #avatar-2966.gif


Dabei seit:
Beiträge: 704
Herkunft: Lörrach

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers