我尝试在stackoverflow上搜索我的问题的答案,但似乎找不到任何相关的内容。
由于我对Silverlight相对较新,我甚至不确定这是否可行,但我想弄清楚是否有可能将Silverlight文本框控件的宽度值按比例设置为它的直接父容器? / p>
避免硬编码宽度值会很好。假设您要将文本框控件放在水平对齐的StackPanel控件中,并将其宽度始终动态调整为StackPanel总宽度的80%。
这是否可以在xaml标记中以声明方式执行,或者我是否需要使用附加到某个事件处理程序的某些代码隐藏来实现此目的?
fyi,我目前正在使用Visual Web Developer Express 2008来编写我的silverlight代码。
提前谢谢, 约翰答案 0 :(得分:2)
使用网格而不是堆栈面板。这样的事情会起作用。
<Grid x:Name="LayoutRoot" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80*" />
<ColumnDefinition Width="20*" />
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" />
</Grid>
只需将columndefinition width设置为与您的需求成比例。如果你想要一个特定的宽度,请省略*(星号)。如果你想要比例,添加*(星号)并使用你想要的任何方案来确定比例(它们可以加起来你想要的任何数字)。在我的例子中,数字加到100.但你可以使用小数,或者其他什么。
答案 1 :(得分:1)
听起来你想要一个<Grid>
而不是<StackPanel>
。只需将TextBox放入宽度设置为.8
的列中。