2010-06-01 4 views

Répondre

2

Votre question ne fait pas vraiment de sens, parce qu'un VisualBrush est sans rapport avec un Drawing (il serait plus logique avec un DrawingBrush). Cependant, vous pouvez créer un Drawing en utilisant le VisualBrush pour peindre dessus. Quelque chose comme ça devrait fonctionner:

public static Drawing GetDrawing(TileBrush brush) 
{ 
    DrawingVisual drawingVisual = new DrawingVisual(); 
    DrawingContext drawingContext = drawingVisual.RenderOpen(); 
    drawingContext.DrawRectangle(brush, new Pen(Brushes.Transparent, 0.0), brush.ViewPort); 
    drawingContext.Close(); 
    return drawingVisual.Drawing; 
} 

(ceci est valable pour une brosse héritée de TileBrush, pas seulement un VisualBrush)

+0

Merci pour votre réponse, regards très prometteur :-) Notez que vous pouvez simplement définir le stylo à null drawingContext.DrawRectangle (brush, null, 0.0), brush.ViewPort); –

5

est ici la version XAML:

<GeometryDrawing Geometry="M0,0 L1,0 1,1 0,1 Z"> 
    <GeometryDrawing.Brush> 
    <VisualBrush> 
     ... 
    </VisualBrush> 
    </GeometryDrawing.Brush> 
</GeometryDrawing>