gpt4 book ai didi

wpf - 防止 WPF ListView 或 ListBox 显示 "half"项

转载 作者:行者123 更新时间:2023-12-04 21:05:46 25 4
gpt4 key购买 nike

在我们的应用程序中,我们在网格中有一些 ListViews 和 ListBoxes,您可以在网格拆分器的帮助下更改控件的实际高度。
这样做时,您可以安排 ListBox 的高度,以便其中一项不完全可见,因为 ListView 变得太短而无法显示它。

这是我们不想要的行为。

从我目前的研究来看,似乎没有办法阻止 ListBox 或 ListView 显示部分项目,但也许有人找到了另一种方法来处理这个问题。也许当项目只有一半可见时,它可以触发自身不可见。但是我们怎样才能知道呢?

我们乐于接受任何建议。

最佳答案

我不知道以这种方式修复 ListView 的方法。但是,对于 ListBox,您可以覆盖ArrangeOverride 并自己安排项目。将您想查看的项目堆叠起来,并将您不希望显示的项目(例如,部分可见的项目)排列起来,使其不可见。例如,一个非虚拟化版本:

    /// <summary>
/// Used to arrange all of the child items for the layout.
/// Determines position for each child.
/// </summary>
/// <param name="finalSize">Parent passes this size in</param>
/// <returns>Parent size (always uses all of the allowed area)</returns>
protected override Size ArrangeOverride(Size finalSize)
{
// Arrange in a stack
double curX = 0;
double curY = 0;
foreach (UIElement child in InternalChildren)
{
double nextY = curY + child.DesiredSize.Height;
if (nextY > finalSize.Height) // Don't display partial items
child.Arrange(new Rect());
else
child.Arrange(new Rect(curX, curY, child.DesiredSize.Width, child.DesiredSize.Height);
curY = nextY;
}

return finalSize;
}

关于wpf - 防止 WPF ListView 或 ListBox 显示 "half"项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6045299/

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