2009-12-22 6 views
5

Wer weiß, wie man dieses Objekt aus Xaml erstellt? Es muss auch bei .5 Deckkraft arbeiten, wenn es über anderen Steuerelementen liegt.WPF - Pfad-/Geometrie-Hilfe - Seltsame Form

Es muss auch über horizontale oder vertikale Ausrichtung in der Größe geändert werden.

Shape http://monitor.utopiaselfscan.com/test.bmp

Ich habe einige Schwierigkeiten. Am nächsten komme ich mit 2 Rahmen, von denen einer einen negativen Rand hat - aber es funktioniert nicht, wenn Deckkraft angewendet wird.

-Code, das funktioniert:

  <Path Fill="Black"> 
       <Path.Data> 
        <CombinedGeometry GeometryCombineMode="Exclude"> 
         <CombinedGeometry.Geometry1> 
          <RectangleGeometry RadiusX="5" RadiusY="5" Rect="0,0,200,100" /> 
         </CombinedGeometry.Geometry1> 
         <CombinedGeometry.Geometry2> 
          <RectangleGeometry RadiusX="5" RadiusY="5" Rect="105,5,90,90" /> 
         </CombinedGeometry.Geometry2> 
        </CombinedGeometry> 
       </Path.Data> 
      </Path> 
+0

Ich machte das wirklich schnell in Farbe, der schwarze Teil sollte 1/2 der Breite des Objekts sein. – jonathanpeppers

Antwort

6

ein GeometryGroup Verwendung mit einem EvenOdd FillRule oder einem CombinedGeometry mit einem GeometryCombineMode von Xor oder ausschließen. Die zu kombinierenden Geometrien sind beide RectangleGeometry-Objekte mit einem entsprechenden RadiusX und RadiusY. Das Ergebnis ist das äußere Rechteck mit einem "Loch" darin, in dem sich das innere Rechteck befand. (Ich nehme an, das ist was Sie wollen, anstatt ein weißes Rechteck innerhalb des schwarzen.)

Sie können diese zusammengesetzte Geometrie dann einem Pfad als Data-Eigenschaft zuweisen und die Füllung und die Deckkraft wie erforderlich festlegen.

+0

Ihr Vorschlag funktioniert. Ich habe noch nie in WPF rohe Geometrien verwendet. – jonathanpeppers