Расширители в отдельных столбцах в одном ряду. Развернуть до полной строки - PullRequest
1 голос
/ 24 октября 2011

У меня есть два расширителя в одной строке сетки, но в разных столбцах. Как я могу развернуть каждый из них до полной строки, но не только по столбцу.

<Grid x:Name="mainGrid">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="90"/>
        <ColumnDefinition Width="90"/>
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition MinHeight="40" />
        <RowDefinition MinHeight="40" />
    </Grid.RowDefinitions>
    <Controls:Expander Grid.Row="0" Grid.Column="0" x:Name="expander2" Header="Header1" 
                           MinHeight="33" Padding="3">
        <TextBlock Text="SomeText1" />
    </Controls:Expander>

    <Controls:Expander Grid.Row="0" Grid.Column="1" x:Name="expander1" Header="Header2" 
                           MinHeight="33" Padding="3">
        <TextBlock Text="SomeText2" />
    </Controls:Expander>
</Grid>

Экспандер1 и Экспандер2 должны расширяться на всю строку 0.

1 Ответ

0 голосов
/ 24 октября 2011

Введите триггеры для расширителей, которые проверяют свое свойство IsExpanded и устанавливают для Grid.RowSpan значение 2.

    <Style TargetType="{x:Type Expander}">
       <Style.Triggers>
          <Trigger Property="IsExpanded" Value="True">
               <Setter Property="Grid.RowSpan" Value="2" />
          </Trigger>
       </Style.Triggers>
    </Style>

Для серебряного света

  <Style TargetType="{x:Type Expander}">
     <Setter Property="Grid.RowSpan"
             Value="{Binding IsExpanded,
                             RelativeSource={RelativeSource
                               Self},
                             Converter={StaticResource
                                local:ExpansionToRowSpanConverter}}"
   </Style>

Код позади ... (это только для иллюстрации)

      ExpansionToRowSpanConverter.Convert(....)
      {
          return (bool)value ? 2 : 1;
      } 

Это работает для вас?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...