Мне нужно свернуть расширитель И объект стека панели, на котором он сидит в окне - PullRequest
0 голосов
/ 11 марта 2010

Вот код, который у меня есть, и мне было интересно, как я мог бы полностью свернуть стек, расширитель и объекты внутри него, чтобы подтолкнуть все объекты под ним, чтобы они заняли пространство, оставшееся после сворачивания верхнего стека и объектов. Мой текущий код ниже:

<Grid>
 <StackPanel Margin="8,8,0,0" VerticalAlignment="Top" Height="225">
  <Expander Header="Expander">
   <Grid Height="201">
    <ListBox HorizontalAlignment="Left" Margin="103,63,0,38" Width="100">
     <ListBoxItem Content="Brown"/>
     <ListBoxItem Content="Red"/>
     <ListBoxItem Content="Green"/>
     <ListBoxItem Content="Yellow"/>
    </ListBox>
   </Grid>
  </Expander>
 </StackPanel>
 <StackPanel Margin="0,0,0,8" VerticalAlignment="Bottom" Height="221">
  <Expander Header="Expander">
   <Grid Height="194">
    <ListBox Margin="177,21,213,73">
     <ListBoxItem Content="Gold"/>
     <ListBoxItem Content="Silver"/>
     <ListBoxItem Content="Platinum"/>
     <ListBoxItem Content="Palladium"/>
    </ListBox>
   </Grid>
  </Expander>
 </StackPanel>

</Grid>

1 Ответ

1 голос
/ 11 марта 2010

Если я правильно понял, что вы хотите сделать, вы можете сделать это, используя размер звездочки в вашей таблице. Размер звездочки указывает Grid использовать весь оставшийся доступный размер (делится пропорционально, если несколько строк / столбцов имеют размер звезды). Таким образом:

<Grid>
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="*" />
  </Grid.RowDefinitions>
  <StackPanel Margin="8,8,0,0" VerticalAlignment="Top" Height="225" Grid.Row="0">
    <!-- first Expander here -->
  </StackPanel>
  <StackPanel Margin="0,0,0,8" VerticalAlignment="Bottom" Grid.Row="1">
    <!-- second Expander here -->
  </StackPanel>
</Grid>

Обратите внимание на прикрепленные свойства Grid.Row.

Теперь, когда вы устанавливаете видимость первой StackPanel на Collapsed, она не занимает высоту. Таким образом, в свою очередь, первый ряд Решетки падает до нулевой высоты. Таким образом, вся высота сетки посвящена второй строке, что означает, что вся высота сетки передается второй StackPanel и ее содержимому.

Это результат, к которому вы стремитесь? Возможно, я неправильно понял вопрос ... если это так, пожалуйста, оставьте комментарий, и я буду обновлять или удалять.

...