【问题标题】:Silverlight stretch child element to fill parent container?Silverlight 拉伸子元素以填充父容器?
【发布时间】:2009-03-06 14:13:37
【问题描述】:
在 Silverlight 中,如何拉伸 Line 的宽度以填充作为子元素的 StackPanel 的宽度?更喜欢 XAML 解决方案,而不是代码隐藏。
这是我在 WPF 中的操作方法:
<Line X1="0"
X2="{Binding Path=ActualWidth, ElementName=HolePatternStackPanel}"
Stroke="Gray"
StrokeThickness="1" />
但这在 Silverlight 中不起作用。
【问题讨论】:
标签:
silverlight
layout
containers
parent
stretch
【解决方案1】:
<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】:
用户 sladapter 在 Silverlight.net 论坛上回答如下:
当前 Silverlight 不支持元素绑定。
你必须使用 Line 对象吗?如果你只想画一条线,你可以使用 Rectangle (2 px height) ,然后你可以设置 HorizontalAlignment="Stretch" 让它自动拉伸。
它非常适合我的需求。
【解决方案3】:
Silverlight 4 中确实存在 ElementBinding。但仍然没有一种很好的方法来拉伸项目以填充其父容器。你真正想要的是适应可视树中的父容器,它考虑了模板的应用。