WPF:将 VisualBrush 转换为绘图?

发布于 2024-09-03 13:54:39 字数 67 浏览 8 评论 0原文

我有一个 VisualBrush,需要这个 VisualBrush 作为绘图。有谁知道如何做到这一点?感谢您的任何提示!

I have a VisualBrush and need this VisualBrush as a Drawing. Anyone knows how this can be done? Thanks for any hint!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黎夕旧梦 2024-09-10 13:54:39

这是 XAML 版本:

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

Here's the XAML version:

<GeometryDrawing Geometry="M0,0 L1,0 1,1 0,1 Z">
  <GeometryDrawing.Brush>
    <VisualBrush>
      ...
    </VisualBrush>
  </GeometryDrawing.Brush>
</GeometryDrawing>
南渊 2024-09-10 13:54:39

您的问题实际上没有意义,因为 VisualBrushDrawing 无关(使用 DrawingBrush 更有意义)。但是,您可以使用 VisualBrush 在其上绘画来创建绘图。类似的东西应该可以工作:(

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

Your question doesn't really make sense, because a VisualBrush is unrelated to a Drawing (it would make more sense with a DrawingBrush). However, you can create a Drawing by using the VisualBrush to paint on it. Something like that should work :

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

(this is valid for any brush inherited from TileBrush, not just a VisualBrush)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文