gpt4 book ai didi

c# - WPF/C# Textwrapping in a scrollviewer 使窗口大小调整滞后

转载 作者:太空宇宙 更新时间:2023-11-03 16:57:55 26 4
gpt4 key购买 nike

你好。

我有一个带有滚动查看器的列表框。列表框的每一项(40++ 项)都包含一个文本 block 和一个小图像。当我调整窗口大小时,调整非常缓慢。如果我将项目的文本 block 可见性设置为“折叠”,则可以调整大小。我的第一种方法是将未在滚动查看器中显示的每个项目的可见性设置为“折叠”,但当用户可以看到某个项目时,我找不到指示器。

有没有人有想法让调整大小的过程不那么滞后,也许是其他控件而不是文本 block ?谢谢你的帮助。

最佳答案

以下指定给定偏移处的项目是否可见:

public bool IsItemVisible(ListBox listBox, int index)
{
if (listBox.Items.Count != 0)
{
VirtualizingStackPanel vsp = (VirtualizingStackPanel)VisualTreeHelper.GetParent(listBox.ItemContainerGenerator.ContainerFromIndex(0));
int FirstVisibleItem = (int)vsp.VerticalOffset, VisibleItemCount = (int)vsp.ViewportHeight;
return index >= FirstVisibleItem && index <= FirstVisibleItem + VisibleItemCount;
}

return false;
}

你可以这样使用它:

private void Button_Click(object sender, RoutedEventArgs e)
{
for (int i = listbox1.Items.Count - 1; i >= 0; i--)
if (!IsItemVisible(listbox1, i))
((ListBoxItem)listbox1.Items[i]).Visibility = Visibility.Collapsed;
}

关于c# - WPF/C# Textwrapping in a scrollviewer 使窗口大小调整滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/802103/

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