2010-03-31 59 views
0

我试着在stackoverflow上搜索我的问题的答案,但似乎无法找到任何相关的东西。因为我对Silverlight相对比较陌生,我甚至不确定这是否可能,但我想知道是否可以根据它的直接父容器来设置Silverlight文本框控件的宽度值?相对设置一个Silverlight文本框控件的宽度

这将是很好,以避免硬编码的宽度值。假设你想在一个水平对齐的StackPanel控件中放置一个文本框控件,并且它的宽度总是被动态地调整为StackPanel总宽度的80%。

这是可能的在你的xaml标记中声明地做,或者我需要求助于一些附加到一些事件处理程序的代码隐藏来完成这个?

fyi,我目前使用Visual Web Developer Express 2008编写我的Silverlight代码。

在此先感谢, 约翰

回答

2

使用网格而不是堆叠面板。像这样的东西会奏效。

<Grid x:Name="LayoutRoot" Background="White"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="80*" /> 
     <ColumnDefinition Width="20*" /> 
    </Grid.ColumnDefinitions> 
    <TextBox Grid.Column="0" /> 
</Grid> 

只需将columndefinition宽度设置为与您的需求成正比。如果你想要一个特定的宽度,忽略*(星号)。如果你想比例,添加一个*(星号),并使用任何你想要的方案来确定比例(他们可以加起来你想要的任何数字)。在我的例子中,数字增加到100.但是你可以使用小数或其他。

1

这听起来像你想<Grid>而不是<StackPanel>。只需将TextBox放入宽度设置为.8的列中即可。

相关问题