2011-09-09 74 views
3

我有一个SL4用户控件,它为其布局使用网格。网格如下:如何隐藏ColumnDefinition的内容

<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> 
    <Grid.RowDefinitions> 
     <RowDefinition x:Name="LayoutHeaderRow" Height="30"/> 
     <RowDefinition x:Name="LayoutSubHeaderRow" Height="30"/> 
     <RowDefinition x:Name="LayoutContentRow" Height="*"/> 
     <RowDefinition x:Name="LayoutFooterRow" Height="30"/> 
    </Grid.RowDefinitions> 
</Grid> 

我的问题是如何隐藏LayoutSubHeaderRow及其内容?

谢谢!

马丁

回答

3

您已经添加到x:Name行定义但没有太大用处给你,因为RowDefinition元素不是视觉元素在视觉树不会结束。因此FindName找不到它们。

XAML中需要看起来像这样: -

<Grid x:Name="Layout" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="30"/> 
     <RowDefinition Height="30"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="30"/> 
    </Grid.RowDefinitions> 
</Grid> 

您可以使用所需的行的顺序位置挑出来的RowDefinitions收集和处理它的代码

Layout.RowDefinitions[1].Height = new GridLength(0);