Как скрыть содержимое ColumnDefinition - PullRequest
3 голосов
/ 09 сентября 2011

У меня есть пользовательский элемент управления 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 и его содержимое?

Спасибо!

Martin

1 Ответ

3 голосов
/ 09 сентября 2011

Вы добавили 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...