2009-08-18 10 views

Répondre

3

L'opération s'est terminée.

Vous pouvez utiliser un dessin géométrique contenant un GeometryGroup avec une règle de remplissage de EvenOdd. Cela peint tous les éléments qui se chevauchent en blanc. Ensuite, ajoutez simplement une autre image avec CombinedGeometry contenant les mêmes objets que le groupe Geometry avec un GeometryCombineMode of Intersect et qui mettra en évidence l'intersection dans votre pinceau personnalisé. L'exemple de code est le suivant:

<Grid> 
    <Image Stretch="None"> 
     <Image.Source> 
      <DrawingImage> 
       <DrawingImage.Drawing> 
        <GeometryDrawing Brush="Red"> 
         <GeometryDrawing.Pen> 
          <Pen Brush="Black" Thickness="3" /> 
         </GeometryDrawing.Pen> 
         <GeometryDrawing.Geometry> 
          <GeometryGroup FillRule="EvenOdd"> 
           <EllipseGeometry RadiusX="80" RadiusY="80" Center="0,0" /> 
           <EllipseGeometry RadiusX="80" RadiusY="80" Center="40,0" /> 
          </GeometryGroup> 
         </GeometryDrawing.Geometry> 
        </GeometryDrawing> 
       </DrawingImage.Drawing> 
      </DrawingImage> 
     </Image.Source> 
    </Image> 
    <Image HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stretch="None"> 
     <Image.Source> 
      <DrawingImage> 
       <DrawingImage.Drawing> 
        <GeometryDrawing Brush="LightBlue"> 
         <GeometryDrawing.Geometry> 
          <CombinedGeometry GeometryCombineMode="Intersect"> 
           <CombinedGeometry.Geometry1> 
            <EllipseGeometry RadiusX="80" RadiusY="80" Center="0,0" /> 
           </CombinedGeometry.Geometry1> 
           <CombinedGeometry.Geometry2> 
            <EllipseGeometry RadiusX="80" RadiusY="80" Center="40,0" /> 
           </CombinedGeometry.Geometry2> 
          </CombinedGeometry> 
         </GeometryDrawing.Geometry> 
        </GeometryDrawing> 
       </DrawingImage.Drawing> 
      </DrawingImage> 
     </Image.Source> 
    </Image> 
</Grid> 

Merci!