WPF: Formen

Anders als in Windows Forms ist es in WPF einfach, Rechtecke, Ellipsen (oder auch Kreise) und Linien zu zeichnen. Hierfür müssen wir kein Paint-Ereignis registrieren, sondern können es direkt im Designer anlegen. Auch das dynamische Erstellen eines solchen grafischen Objekts erfolgt gleich wie das dynamische Erstellen eines Buttons o. Ä.. Doch wie funktioniert das dynamische Hinzufügen eines Steuerelements grundsätzlich? Jedem Steuerelement, welchem Steuerelemente untergeordnet werden können (zumeist einem Layout-Panel), können wir über die Funktion Add() der Eigenschaft Children ein Steuerelement hinzufügen. Im Programmcode erzeugen wir hierfür „programmiertechnisch“ ein Objekt des Steuerelements, welches wir neu erstellen wollen und übergeben es der Add()-Funktion der Children-Eigenschaft des übergeordneten Steuerelements.
Nun aber zurück zu den Steuerelementen selbst: Die Formen-Steuerelemente befinden sich alle im Namensraum System.Windows.Shapes. Die Rectangle-Klasse stellt ein Rechteck dar, wohingegen die Ellipse-Klasse eine Ellipse oder auch einen Kreis darstellt. Die Klasse Line bietet uns die Möglichkeit, eine Linie von einem zum anderen Punkt zu zeichnen. Alle Shapes (englisch für Formen) sind von der Klasse Shape abgeleitet. Dort gibt es die wichtigen Eigenschaften Fill, Stroke und StrokeThickness. Fill und Stroke erwarten ein Objekt der Brush-Klasse. Stroke und StrokeThicknes sind für den Rahmen zuständig, wohingegen die Fill-Eigenschaft die Füllfarbe angibt. Die Stroke-Eigenschaft legt die Farbe des Rahmens fest. StrokeThickness wird als Gleitkommazahl (Datentyp dobule) angegeben und gibt die Breite des Rahmens an. Natürlich sind auch die Eigenschaften Margin, Height und Width von großer Bedeutung. Diese gehören jedoch der Basisklasse FrameworkElement an. Übrigens: Sowohl Control als auch Shape leiten sich von der FrameworkElement-Klasse ab. Bei der Klasse Line erfolgt die Positionierung und Größensteuerung nicht mit Hilfe von Margin, Height und Width, sondern über die Koordinaten-Eigenschaften X1, X2, Y1 und Y2. Hierbei legt die X1- und Y1-Eigenschaft die erste Koordinate fest und X2 und Y2 die zweite.

MainWindow.xaml

<Rectangle Stroke="Blue" StrokeThickness="5" Width="350" Height="180" Fill="AliceBlue" />
<Ellipse Fill="Violet" Width="150" Height="150" />
<Line Stroke="Red" StrokeThickness="1" X1="57" Y1="48" X2="269" Y2="170" />
Download

LinksRechts