gpt4 book ai didi

wpf - 如何使 WPF ListView 不高于其内容但适合其他控件的窗口?

转载 作者:行者123 更新时间:2023-12-03 22:00:19 26 4
gpt4 key购买 nike

我正在尝试按如下方式安排 WPF UI:

Mock up

  • 在窗口的顶部是一些自定高度的控件(有效地停靠在窗口的顶部,但只要他们想要的高度)。
  • 在这些控件下面是一个 ListView。 ListView 可能包含可变数量的项目,每个项目的高度各不相同。 问题: ListView 不能比它需要的高。如果 ListView 中的所有项目都可以轻松放入窗口中,我希望 ListView 正好是显示其所有项目的高度(因此窗口看起来像一个网页的流动布局,底部有空白空间)。另一方面,如果所有 ListView 项目都不适合窗口,我希望整个 UI 适合窗口(就像数字 3
    下面停靠在窗口底部,并且 ListView 正在填充可用空间)。当用户调整窗口大小和/或按下更改 ListView 内容的按钮时,这一切都必须动态调整。
  • 在 ListView 下方是更多的自定高度控件。这些必须始终直接出现在 ListView 下,没有间隙。特别是,如果它们直接适合 ListView,它们不能只是停靠在窗口底部。

  • 非常欢迎解决方案;我已经摆弄了一段时间并设法使事情正常工作 除了 ListView 下方的控件,通过在窗口中使用外部 DockPanel,第一个控件停靠在顶部,ListView 填充剩余空间但设置为 VerticalAlignment="Top"。

    纯 XAML 解决方案将是理想的,但如果不可避免,我不介意背后的代码。允许多个此类布置垂直堆叠的解决方案的加分点:) 感谢您的帮助!

    最佳答案

    尝试

    <Grid VerticalAlignment="Top">
    <Grid.RowDefinitions>
    <RowDefinition Height="auto" />
    <RowDefinition Height="*" />
    <RowDefinition Height="auto" />

    </Grid.RowDefinitions>

    <Button Content="hello" />
    <ScrollViewer Grid.Row="1" >
    <ListView >
    <ListBoxItem Content="hi" />
    <ListBoxItem Content="hi" />
    <ListBoxItem Content="hi" />
    <ListBoxItem Content="hi" />
    <ListBoxItem Content="hi" />
    <!-- Some Items -->
    </ListView>
    </ScrollViewer>
    <Button Content="hello" Grid.Row="2" />

    </Grid>

    关于wpf - 如何使 WPF ListView 不高于其内容但适合其他控件的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5319711/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com