是否可以在Silverlight中为Grid设置列的宽度?我有一个有两列的网格(不是网格视图)。 ColumnA和ColumnB。我想要完成的是当用户点击ColumnA中的按钮时,ColumnA的宽度设置为.01。然后ColumnB应扩展网格的整个宽度以填充剩余区域。类似于如何固定或解锁底座面板?
这是最好的方法还是我应该回到dockpanel并让SL处理它?我宁愿自己管理它而不是使用RAD控件,因为我认为这对于如此小而且看似简单的任务来说有点臃肿。
我的另一个想法是使用网格分析器,但我不确定如何使用gridsplitter以编程方式折叠或扩展列?因此,我目前的困境。任何建议都将不胜感激。
提前致谢
答案 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();