2011-01-21 36 views
2

我有幾個常用的符號已由WPF形狀主體(例如矩形,線條,路徑等)組成。這些符號當前以用戶控件的形式存儲在xaml文件中。例如:將XAML形狀繪製爲DrawingContext?

<Canvas x:Name="Symbol" Width="100" Height="100"> 
    <Rectangle x:Name="Rectangle" Width="100" Height="100" Stretch="Fill"> 
     <Rectangle.Fill> 
      <SolidColorBrush Color="Aqua"></SolidColorBrush> 
     </Rectangle.Fill> 
    </Rectangle> 
</Canvas> 

上面是一個簡單的例子,但我的大多數符號更復雜,並由許多不同的部分組成。所以,我希望能夠使用這些用戶控件來存儲這些符號,並使它們易於操作。

我在Canvas的OnRender方法中做了很多繪圖,並希望在我的繪圖中包含一些這些複合符號。是否有可能將這些變成一種格式來將它們繪製到DrawingContext中?我知道有一個名爲DrawingContext.DrawImage的方法,但是這需要一個ImageSource作爲輸入。

任何想法將不勝感激。

謝謝你,艾倫

回答

4

如果你讓你的畫布可以使用的drawImage到像一個ImageSource的:

VisualBrush vb = new VisualBrush(canvas); 
GeometryDrawing gd = new GeometryDrawing(vb, new Pen(Brushes.Transparent, 0), new RectangleGeometry(new Rect(0, 0, width, height))); 
img = new DrawingImage(gd); 
+0

這是完美的,正是我一直在尋找。謝謝! –