如何隐藏ColumnDefinition的内容

时间:2011-09-09 16:34:47

标签: c# wpf silverlight silverlight-4.0 user-controls

我有一个SL4用户控件,它使用网格进行布局。网格如下:

<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及其内容?

谢谢!

马丁

1 个答案:

答案 0 :(得分: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);