2010-11-12 12 views
8

Tengo un GeometryDrawing similar como esto:WPF: ¿es posible renderizar un círculo usando GeometryDrawing?

<DrawingImage x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type wpfhlp:FokusGroupBox},ResourceId=IconTest}"> 
    <DrawingImage.Drawing> 
    <DrawingGroup> 
     <GeometryDrawing Brush="Black" Geometry="M0,260 L0,600 L110,670 L110,500 L190,550 L190,710 L300,775 L300,430 L150,175"/> 
    </DrawingGroup> 
    </DrawingImage.Drawing> 
</DrawingImage> 

Ahora me gustaría dibujar un círculo en su lugar, pero sólo se puede encontrar comandos para moverse, dibujar una línea, nada que dibujar un círculo.

¿Hay alguna manera de hacer que GeometryDrawing dibuje un círculo?

Respuesta

17
.... 
<GeometryDrawing Brush="Black"> 
    <GeometryDrawing.Geometry> 
     <EllipseGeometry Center="0,0" RadiusX="1" RadiusY="1" /> 
    </GeometryDrawing.Geometry> 
</GeometryDrawing> 

Como alternativa, también se puede utilizar Path Markup Syntax para dibujar dos arcos elípticos (la mitad superior e inferior del círculo):

<GeometryDrawing Brush="Black" Geometry="M -1,0 A 1,1 0 1 1 1,0 M -1,0 A 1,1 0 1 0 1,0" /> 
+0

Gracias, que funciona - ahora sólo tiene que encontrar una forma de obtener un círculo "hueco" (con un medio transparente). – Sam

7
<Path Stretch="Fill" 
     Fill="Transparent" 
     Stroke="Black" 
     StrokeThickness="5" 
     Data="M 0,0 A 180,180 180 1 1 1,1 Z"/> 
+1

No se puede agregar una declaración de ruta a una colección de dibujo (al menos según Kaxaml) pero veo que esta respuesta tiene 5 votos ascendentes. Dado que la pregunta implica "GeometryDrawing" y no Paths, esta respuesta es incorrecta. –

Cuestiones relacionadas