2011-09-09 31 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);