DrawingBrush используется в качестве заливки для прямоугольника - PullRequest
2 голосов
/ 24 февраля 2010

У меня есть приведенное ниже определение для DrawingBrush. Это пример, который я нашел онлайн, который рисует стрелку:

<DrawingBrush x:Key="arrow" Stretch="Uniform">
  <DrawingBrush.Drawing>
    <DrawingGroup>
      <DrawingGroup.Children>
        <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 358.447,332.449L 358.447,319.664L 380.875,319.664L 380.798,309.408L 407.698,326.505L 381.068,343.628L 380.982,332.45L 358.447,332.449 Z "/>
      </DrawingGroup.Children>
    </DrawingGroup>
  </DrawingBrush.Drawing>
</DrawingBrush>

Теперь я создал прямоугольник на холсте и установил для свойства прямоугольника Fill указанное выше DrawingBrush:

<Rectangle Fill="{DynamicResource arrow}" Stroke="#FF000000" Width="Auto" Height="Auto" Canvas.Top="339.815" Canvas.Left="112.037" x:Name="arrowRectangle"/>

Когда для ширины и высоты прямоугольника установлено значение «Авто», я ожидал, что размер прямоугольника изменится, чтобы автоматически отобразить нарисованную стрелку. Тем не менее, кажется, что мне нужно явно установить ширину / высоту, чтобы увидеть что-нибудь. Если я оставлю ширину / высоту как авто, прямоугольник будет отображаться как одна точка, как если бы ширина = высота = 0.

Кажется, я неправильно понимаю, как работает DrawingBrush. Я просто ищу способ отображения стрелки. Должен ли я использовать изображение вместо DrawingBrush? Сначала я искал DrawingBrush, потому что думал, что для такой простой вещи, как стрелка, она будет работать нормально.

Спасибо.

1 Ответ

2 голосов
/ 24 февраля 2010

DrawingBrush - это просто еще одна кисть, которая не имеет размеров макета, поэтому она просто попытается заполнить область элемента управления, в которой она вызывается. Таким образом, вы не можете ожидать, что кисть контролирует размер прямоугольника. Но вы можете использовать путь с этой геометрией как DataProperty

<Path Fill="Red" Data="F1 M 358.447,332.449L 358.447,319.664L 380.875,319.664L 380.798,309.408L 407.698,326.505L 381.068,343.628L 380.982,332.45L 358.447,332.449 Z " Stretch="Uniform" ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...