【问题标题】:Draw XAML shapes to DrawingContext?将 XAML 形状绘制到 DrawingContext?
【发布时间】:2011-01-21 13:38:48
【问题描述】:

我有几个由 WPF 形状基元组成的常见符号(例如矩形、线、路径等)。这些符号当前作为用户控件存储在 xaml 文件中。例如:

<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 作为输入。

任何想法都将不胜感激。

谢谢, 艾伦

【问题讨论】:

    标签: c# wpf xaml user-controls drawing


    【解决方案1】:

    如果您将画布制作成如下图像源,则可以使用 drawimage:

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

    【讨论】:

    • 这很完美,正是我想要的。谢谢!
    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    相关资源
    最近更新 更多