如何将视图缩放到最大限制,同时保持视图居中

时间:2018-09-26 13:22:15

标签: wpf

我有一个这样的列表视图居中:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <ListView Grid.Row="1" />
</Grid>

像这样,ListView将随着其增长自动占用更多空间,并在达到表单限制时自动显示ScrollBar。

问:问:我如何才能使ListView占用所有可用的垂直空间,即使它是空的(将行0和2减少到0px)。

我不想更改RowDefinition,因为实际上,我有几个视图可以显示在同一Grid中,而不是一个ListView。有些应该能够自动增长(同时保持居中状态),而另一些应该占用所有可用空间。我正在寻找类似<ListView Height="Maximum" />之类的东西。

2 个答案:

答案 0 :(得分:0)

您可以将窗口高度绑定到ViewModel中的属性,然后将其设置为MinHeight的{​​{1}},如下所示:

ListView

然后:

<Window
    ...
    Height="{Binding MaxHeight}">

答案 1 :(得分:0)

在许多应用程序中,我都使用了以下框架。

现在第一排和第三排占据它们所需的空间,第二排覆盖剩余的空间

<Grid>
<Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<ListView Grid.Row="1" />