Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF-使两个扩展器根据显示的扩展器填充可用空间_Wpf_Xaml_Mahapps.metro - Fatal编程技术网

WPF-使两个扩展器根据显示的扩展器填充可用空间

WPF-使两个扩展器根据显示的扩展器填充可用空间,wpf,xaml,mahapps.metro,Wpf,Xaml,Mahapps.metro,我有两个扩展器。 一个应该在控件的顶部,一个应该在控件的底部 当我单击顶部扩展器时,底部应折叠,顶部应向下扩展并占用所有可用空间,而不移除或将底部推出页面。反过来,当我单击底部扩展器时,顶部扩展器应该折叠,底部扩展器应该向上扩展并占用控件上的所有可用空间 我遇到的问题是可视化的,我知道如何在我的ViewModel中绑定expander的IsExpanded并相应地更新它们。我不知道该使用哪些控件以及如何正确设置它们 我尝试过使用网格,但如果我将行高度设置为*,无论我做什么,它们的高度(当然)保持

我有两个扩展器。 一个应该在控件的顶部,一个应该在控件的底部

当我单击顶部扩展器时,底部应折叠,顶部应向下扩展并占用所有可用空间,而不移除或将底部推出页面。反过来,当我单击底部扩展器时,顶部扩展器应该折叠,底部扩展器应该向上扩展并占用控件上的所有可用空间

我遇到的问题是可视化的,我知道如何在我的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将进行救援。再次感谢!