Silverlight растянуть дочерний элемент для заполнения родительского контейнера?

StackOverflow https://stackoverflow.com/questions/618992

Вопрос

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

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

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

Это было полезно?

Решение

<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 для диагонали от левого верхнего до правого нижнего угла или измените его для левого нижнего на верхний правый.

Фанки свежие.

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top