WPF-使两个扩展器根据显示的扩展器填充可用空间
我有两个扩展器。 一个应该在控件的顶部,一个应该在控件的底部 当我单击顶部扩展器时,底部应折叠,顶部应向下扩展并占用所有可用空间,而不移除或将底部推出页面。反过来,当我单击底部扩展器时,顶部扩展器应该折叠,底部扩展器应该向上扩展并占用控件上的所有可用空间 我遇到的问题是可视化的,我知道如何在我的ViewModel中绑定expander的IsExpanded并相应地更新它们。我不知道该使用哪些控件以及如何正确设置它们 我尝试过使用网格,但如果我将行高度设置为*,无论我做什么,它们的高度(当然)保持不变,并且内容只扩展到行允许的高度WPF-使两个扩展器根据显示的扩展器填充可用空间,wpf,xaml,mahapps.metro,Wpf,Xaml,Mahapps.metro,我有两个扩展器。 一个应该在控件的顶部,一个应该在控件的底部 当我单击顶部扩展器时,底部应折叠,顶部应向下扩展并占用所有可用空间,而不移除或将底部推出页面。反过来,当我单击底部扩展器时,顶部扩展器应该折叠,底部扩展器应该向上扩展并占用控件上的所有可用空间 我遇到的问题是可视化的,我知道如何在我的ViewModel中绑定expander的IsExpanded并相应地更新它们。我不知道该使用哪些控件以及如何正确设置它们 我尝试过使用网格,但如果我将行高度设置为*,无论我做什么,它们的高度(当然)保持
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<Expander
Grid.Row="0"
Margin="5"
Header="Server Connections"
IsExpanded="{Binding IsTopExpanded}">
*** ListBox With Content ***
</Expander>
<Expander
Grid.Row="1"
Margin="5"
Header="Server Browser"
IsExpanded="{Binding IsBottomExpanded}">
*** Some Content ***
</Expander>
</Grid>
***包含内容的列表框***
***一些内容***
我试过使用StackPanel,但top Expander内容不会接收垂直滚动条,因此,如果我有许多项目,我无法向下滚动
希望我足够清楚,如果我不清楚-请让我知道。:) 您需要为
行定义
的高度
设置*
和自动
之间的切换。您可以使用两种样式来完成此操作:
<Grid>
<Grid.RowDefinitions>
<RowDefinition>
<RowDefinition.Style>
<Style TargetType="RowDefinition">
<Setter Property="Height" Value="*" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsBottomExpanded}" Value="True">
<Setter Property="Height" Value="Auto" />
</DataTrigger>
</Style.Triggers>
</Style>
</RowDefinition.Style>
</RowDefinition>
<RowDefinition>
<RowDefinition.Style>
<Style TargetType="RowDefinition">
<Setter Property="Height" Value="Auto" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsBottomExpanded}" Value="True">
<Setter Property="Height" Value="*" />
</DataTrigger>
</Style.Triggers>
</Style>
</RowDefinition.Style>
</RowDefinition>
</Grid.RowDefinitions>
<Expander
Grid.Row="0"
Margin="5"
Header="Server Connections"
IsExpanded="{Binding IsTopExpanded}">
<TextBlock>*** ListBox With Content ***</TextBlock>
</Expander>
<Expander
Grid.Row="1"
Margin="5"
Header="Server Browser"
IsExpanded="{Binding IsBottomExpanded}">
<TextBlock>*** Some Content ***</TextBlock>
</Expander>
</Grid>
***包含内容的列表框***
***一些内容***
和往常一样,mm8将进行救援。再次感谢!