2009-12-22 18 views
5

Qualcuno conosce un buon modo per creare questo oggetto da Xaml? Deve anche lavorare a .5 Opacity se sovrapposto ad altri controlli.WPF - Guida Path/Geometry - Strana forma

Inoltre deve essere ridimensionabile tramite allineamento orizzontale o verticale.

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

sto avendo qualche difficoltà. Il più vicino che ottengo è con 2 bordi, uno con un margine negativo - ma non funziona quando si applica Opacità.

codice che funziona:

  <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

Ho fatto questo veloce in vernice, la parte nera dovrebbe essere 1/2 della larghezza dell'oggetto. – jonathanpeppers

risposta

6

Utilizzare un GeometryGroup con evenOdd FillRule, o un CombinedGeometry con un GeometryCombineMode di Xor o escludere. Le geometrie da combinare saranno entrambi oggetti RectangleGeometry, con un appropriato RadiusX e RadiusY. Il risultato sarà il rettangolo esterno con un "buco" in cui si trovava il rettangolo interno. (Suppongo che questo sia quello che vuoi piuttosto che un rettangolo bianco all'interno di quello nero.)

È quindi possibile assegnare questa geometria composita a un percorso come proprietà Dati e impostare il riempimento e l'opacità come richiesto.

+0

Il tuo suggerimento funziona. Non ho mai usato le geometrie prime in WPF. – jonathanpeppers