2009-12-22 12 views
5

Alguien sabe una buena manera de crear este objeto de Xaml? También tiene que funcionar a .5 Opacidad cuando se superpone a otros controles.WPF - Ruta/Geometría ayuda - Extraña forma

También tiene que ser de tamaño variable a través Horizontal o Vertical Alignment.

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

Estoy teniendo algunas dificultades. Lo más cerca que consigue es con 2 bordes, uno que tiene un margen negativo - pero no funciona cuando se aplica opacidad.

código que funciona:

  <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

Hice este real rápido en la pintura, la parte negro debe ser de 1/2 de la anchura del objeto. – jonathanpeppers

Respuesta

6

Utilice un GeometryGroup con un EVENODD FillRule, o una CombinedGeometry con un GeometryCombineMode de Xor o excluir. Las geometrías de combinar los dos para ser objetos RectangleGeometry, con un RadiusX y RadiusY apropiado. El resultado será el rectángulo exterior con un "orificio" donde se encuentra el rectángulo interno. (Supongo que esto es lo que desea en lugar de un rectángulo blanco en el negro.)

A continuación, puede asignar esta geometría compuesta por una vía como propiedad de datos, y establecer el relleno y opacidad según se requiera.

+0

Tu sugerencia funciona. Nunca he usado geometrías crudas antes en WPF. – jonathanpeppers

Cuestiones relacionadas