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