Изменение размера строки другого размера в WPF - PullRequest
2 голосов
/ 25 марта 2011

Мне интересно, есть ли способ решить эту проблему, изменив код XAML?

Пожалуйста, посмотрите на этот образец изображения:

enter image description here

То, что я хочу сделать, это когда пользователь перетаскивает GridSeparater No.1, я хочу изменить размер третьей строки сетки.

Это потому, что в этом приложении первая и третья строки имеют переменный размер, а вторая - фиксированный размер.

Это возможно?

Ответы [ 2 ]

4 голосов
/ 25 марта 2011

Это возможно с ResizeBehaviour="PreviousAndNext" ( Ссылка на MSDN ). Это позволяет вам указать, какие строки должны быть затронуты относительно GridSplitter.

<Grid Width="300" Height="200" Background="Yellow"  ShowGridLines="True">
  <Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="20"/>
    <RowDefinition Height="*"/>
  </Grid.RowDefinitions>

                  <GridSplitter Grid.Row="1"
                      ResizeDirection="Rows"
                      ResizeBehavior="PreviousAndNext"
                      HorizontalAlignment="Stretch"
                      VerticalAlignment="Top"
                      Background="Black" 
                      ShowsPreview="True"
                      Height="5" 
                      />



</Grid>
1 голос
/ 25 марта 2011

Вы можете попробовать установить для MinHeight и MaxHeight одинаковое значение в центральной строке, что приведет к пересчету нижней части при изменении размера верхней части.Как то так:

  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="50" MaxHeight="50" MinHeight="50"/>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>        
    ... other content
    <GridSplitter Height="3" Grid.Row="1" HorizontalAlignment="Stretch"/>
    <GridSplitter Height="3" Grid.Row="3" HorizontalAlignment="Stretch"/>
  </Grid>
...