Silverlight растянуть дочерний элемент для заполнения родительского контейнера? - PullRequest
3 голосов
/ 06 марта 2009

Как в Silverlight растянуть ширину Линии, чтобы заполнить ширину StackPanel, в которой он является дочерним элементом? Предпочитаю решение XAML, а не кодовый код. Вот как я могу сделать это в WPF:

<Line X1="0" 
      X2="{Binding Path=ActualWidth, ElementName=HolePatternStackPanel}" 
      Stroke="Gray" 
      StrokeThickness="1" />

Но это не работает в Silverlight.

Ответы [ 3 ]

7 голосов
/ 26 июня 2009
<Line X1="0" Y1="0" X2="0" Y2="1" Stretch="Fill" Stroke="#FF000000" />

Работает как в WPF, так и в Silverlight.

Если X равны 0, это вертикальная линия. Если Y равны 0, это горизонтальный. Используйте X1 = 0 Y1 = 0 X2 = 1 Y2 = 1 для диагонали от левого верхнего до правого нижнего угла или измените его для левого нижнего верхнего угла вправо.

Веселые свежие.

2 голосов
/ 06 марта 2009

Пользователь sladapter ответил на форуме Silverlight.net следующим образом:

Текущий Silverlight не поддерживает привязку элементов.

Вам нужно использовать объект Line? Если вы просто хотите нарисовать линию, вы можете использовать Rectangle (высота 2 пикселя), тогда вы можете установить HorizontalAlignment = "Stretch", чтобы она автоматически растягивалась.

Это сработало для моих нужд.

1 голос
/ 16 июля 2010

ElementBinding существует в Silverlight 4. Но все еще не существует хорошего способа растянуть элемент, чтобы заполнить его родительский контейнер. Что вам действительно нужно, так это вписаться в родительский контейнер в дереве визуалов, который учитывает применение шаблонов.

...