WPF: конвертировать VisualBrush в рисование? - PullRequest
2 голосов
/ 01 июня 2010

У меня есть VisualBrush, и мне нужен этот VisualBrush как чертеж. Кто-нибудь знает, как это можно сделать? Спасибо за любую подсказку!

Ответы [ 2 ]

5 голосов
/ 05 июня 2010

Вот версия XAML:

<GeometryDrawing Geometry="M0,0 L1,0 1,1 0,1 Z">
  <GeometryDrawing.Brush>
    <VisualBrush>
      ...
    </VisualBrush>
  </GeometryDrawing.Brush>
</GeometryDrawing>
2 голосов
/ 01 июня 2010

Ваш вопрос на самом деле не имеет смысла, потому что VisualBrush не имеет отношения к Drawing (это было бы более разумно с DrawingBrush). Тем не менее, вы можете создать Drawing, используя 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)

...