2010-06-01 31 views

回答

2

你的問題沒有意義,因爲VisualBrushDrawing無關(這對於DrawingBrush會更有意義)。但是,您可以使用VisualBrush在上面創建一個Drawing。這樣的東西應該工作:

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; 
} 

(這是有效期爲自TileBrush繼承任何刷,不只是一個VisualBrush

+0

感謝您的回覆,長相非常有希望:-) 請注意,您可以將筆設置爲空 drawingContext.DrawRectangle(brush,null,0.0),brush.ViewPort); – 2010-06-01 18:44:46

5

這裏的XAML版本:

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