我在这里有一个扩展器,这里显示的边框是它周围的网格:
-----------------------------------
| |
| ^ expander |
|---------------------------------|
扩展此扩展器时,如何调整此网格的大小?
结果如下:
-----------------------------------
| |
| V expander |
| |
| |
| content of expander |
| |
| |
|---------------------------------|
请不要关心窗口大小或外部网格大小。 我只是想调整一下。
更新:
当用户关闭扩展器时,我希望网格返回图1。
XAML片段:
<Grid Margin="143,92,143,148" Background="#FF646464" Width="472" Height="217">
<Border BorderBrush="#FF5983BF" BorderThickness="1"/>
<Expander x:Name="advancedExpander" Header="Advanced" HorizontalAlignment="Left" Margin="10,196,0,-147" Width="452" Height="168" VerticalAlignment="Top" Foreground="#FFC7C7C7">
<Grid Background="#FFE5E5E5"/>
</Expander>
</Grid>
删除了一些按钮。我认为我们不需要它们。
答案 0 :(得分:1)
您可以使用触发器来更改&#34;高度&#34;
<Style TargetType="RowDefinition" x:Key="ExpandedRow">
<Style.Triggers>
<DataTrigger Binding="{Binding IsExpanded}" Value="True">
<Setter Property="Height" Value="400"/>
</DataTrigger>
</Style.Triggers>
</Style>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" Style="{StaticResource ExpandedRow}" />
</Grid.RowDefinitions>
</Grid>
<Expander MaxHeight="400" Name="Expander" IsExpanded="{Binding IsExpanded}">
...
</Expander>
ViewModel.cs
public bool IsExpanded { get; set; }
答案 1 :(得分:0)
如果我理解正确,你可以做这样的事情
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MaxHeight="200"/>
<RowDefinition Height="3"/>
</Grid.RowDefinitions>
<GridSplitter Height="3" HorizontalAlignment="Stretch" Grid.Row="1"/>
<GridSplitter Height="3" HorizontalAlignment="Stretch" Grid.Row="3"/>
<Expander Header="Header" HorizontalAlignment="Stretch" VerticalAlignment="Top" Background="Gray" IsExpanded="False" Grid.Row="0" >
<Grid Height="296" >
</Grid>
</Expander>
</Grid>
</Grid>