Laden...

Rectangle vs. RectangleGeometry

Erstellt von srynoname vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.600 Views
S
srynoname Themenstarter:in
223 Beiträge seit 2006
vor 14 Jahren
Rectangle vs. RectangleGeometry

Hallo,

frage mich gerade, wann ich System.Windows.Shapes.Rectangle und wann System.Windows.Media.RectangleGeometry verwende? Mir ist nicht klar, worin sich beide unterscheiden.

Vielen Dank!

6.862 Beiträge seit 2003
vor 14 Jahren

Hallo,

Das Rectangle ist ein Shape, eine von FrameworkElement abgeleitete Klasse und hat damit eine konkrete grafische Repräsentation und wird auch vom Layout berücksichtigt usw. Man kann am ehesten wie ein Control vorstellen welches ein Rechteck zeichnet (aber wie gesagt nur vorstellen, es ist kein Control im WPF Sinne).

RectangleGeometry ist ne relativ simple Klasse die ein Rechteckt abstrakt beschreibt mit Höhe und Breite. Es gibt keinerlei Informationen wie das Rechteckt aussieht. Verwendet werden kann es überall wo es auf die Beschreibung einer Geometrie eines Objektes ankommt. Z.B. ein Path den man Rechteckform geben will oder fürs Clipping eines Windows. Wenn man kein rechteckiges Fenster haben möchte gibt man einfach fürs Clip Property des Windows eine andere Geometrie an.

Im Prinzip ist das Rectangle Shape nur ein Path Shape mit RectangleGeometry. Nur brauch man das so häufig dass die Rectangle Klasse neben den anderen oft benutzen Shapes eingeführt wurde.

Baka wa shinanakya naoranai.

Mein XING Profil.

S
srynoname Themenstarter:in
223 Beiträge seit 2006
vor 14 Jahren

Hallo talla,

vielen Dank für deine ausführliche Erklärung, hat mir sehr geholfen!

6.862 Beiträge seit 2003
vor 14 Jahren

Steht übrigens auch in der Doku. Bei der Geometry Klasse, welche man sich ja anschauen sollte wenn man sich fragte was ein RectangleGeometry ist, hats nen Abschnitt "Geometry Compared to Shape" 😃

Baka wa shinanakya naoranai.

Mein XING Profil.

S
srynoname Themenstarter:in
223 Beiträge seit 2006
vor 14 Jahren

Ich muss zugeben, daran, mal bei der Basisklasse zu schauen, habe ich nicht gedacht. Aber ein guter Hinweis, werde ich mir merken 😃