以编程方式设置网格中列的宽度

时间:2011-04-13 21:36:38

标签: c# silverlight gridsplitter

是否可以在Silverlight中为Grid设置列的宽度?我有一个有两列的网格(不是网格视图)。 ColumnA和ColumnB。我想要完成的是当用户点击ColumnA中的按钮时,ColumnA的宽度设置为.01。然后ColumnB应扩展网格的整个宽度以填充剩余区域。类似于如何固定或解锁底座面板?

这是最好的方法还是我应该回到dockpanel并让SL处理它?我宁愿自己管理它而不是使用RAD控件,因为我认为这对于如此小而且看似简单的任务来说有点臃肿。

我的另一个想法是使用网格分析器,但我不确定如何使用gridsplitter以编程方式折叠或扩展列?因此,我目前的困境。任何建议都将不胜感激。

提前致谢

2 个答案:

答案 0 :(得分:10)

通过Name属性为您的ColumnDefinition命名,例如:

<ColumnDefinition Width="100" Name="FooColumn"/>

然后,您可以随时为其分配新的宽度:

FooColumn.Width = new GridLength(1);

(编辑:两个地方应该使用相同的名字......哎呀......你明白了)

答案 1 :(得分:0)

Try this

<Grid x:Name="LayoutRoot" Background="White" ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100"/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>       
        <sdk:GridSplitter  />    
    </Grid>

 LayoutRoot.ColumnDefinitions.First().Width = new GridLength();