问题标签 [virtualizingstackpanel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
258 浏览

c# - wpf .net 4.5 Isvirtualizng 错误分组更新列表时

我在列表视图中绑定了很多图像using following code
lvImages.ItemsSource = lstVisualDuplicateImage;

ListView 中使用的以下属性

这是我使用 .net 4.5 执行的完整 XAML 绑定和分组

listview 中没有完整的项目问题是图像重复并更改其在组中的位置未正确加载并且刷新是否有任何方法可以虚拟化组。

0 投票
0 回答
188 浏览

c# - wpf virtualizingstackpanel在不同Win10机器上的不同行为

我的 WPF 应用程序将 VirtualizingStackPanel 用于 ListView。滚动此列表在两台不同的机器上运行良好:我的主机(Windows 10 v1803 build 17134.228)和一台虚拟机(Windows 10 v1607 build 14393.2312)。如果我在我的另一个虚拟机(Windows 10 v1803 build 17134.165)上运行相同的应用程序,完全相同的副本,则列表滚动不流畅——速度非常慢。关于几行的短滚动步骤很好(CacheLength),但滚动更多行非常糟糕,最喜欢虚拟化无法正常工作。任何人都知道,如果虚拟化依赖于 Windows 10 系统的任何组件或设置?
只需使用 ListView 粘贴一部分代码。感谢帮助。

更新:抱歉虚假信息 - 滚动并不慢,滚动单元不是一个项目,而是整个页面(可能比页面更多)。所以滚动的视觉效果很差。

0 投票
1 回答
165 浏览

wpf - 如何让很少发生的 WPF 异常更频繁地重现?

此时将没有最小的可重现示例,因为我最多只能每天重现一次,并且只能使用在多个控件中有数千个 xaml 行的产品主窗口。

我正在调查另一个 WPF 导致的崩溃,当主窗口调整大小或程序认为它调整大小 (WM_SIZE) 时可能发生崩溃。stacktrace 中的控件是一个虚拟化的 Treeview。所以我问是否有想法如何更频繁地复制下面的异常?

例外

0 投票
0 回答
47 浏览

c# - 将 VirtualizingStackPanel 与 ScrollViewer 内的多个 ListBox 一起使用

ListBoxes在一个ScrollViewer. 这些列表框包含不同数量的项目(实际数量在加载之前是未知的)。这些列表框需要像这样显示 UI 流并获得单个滚动条。但是,ScrollViewer禁用VirtualizingStackPanel.

因为有时这些列表框中的一些可以在其中包含数千个项目,所以这并没有真正表现得那么好。我想知道是否有任何方法仍然VirtualizingStackPanel可以将ScrollViewer.

0 投票
1 回答
166 浏览

listview - ItemsStackPanel 扩展了网格容器之外的大型源

更新信息好的,抱歉,我不得不检查我的问题和标题。但是,尽管我们进行了多次测试,但问题的缩小范围并不容易追踪。您会在下面找到导致无法解释的错误的新代码,以及由于遗留原因而留下的旧版本问题。这个问题很容易重现。

更新代码 绑定Listview到 anObservableCollection并用大量项目填充它,在我们的例子中超过 30k 左右。最终结果是,当您增加项目数量时,ItemsStackPanel中的ListView扩展超出包含网格。它发生在 的两个方向上,ItemsStackPanel但当方向设置为 时更容易发生Horizontal

我们的问题是如何解决这个问题,即在不丢失虚拟化的情况下避免流出包含网格?

请注意,我们需要处理如此多的文件,因为我们正在构建一个照片应用程序,在该应用程序中通常要显示数以万计的图像/视频。除了这个错误,UWP 应用实际上在所有问题上都对此做出了很好的响应。

谢谢

XAML

C#

旧代码(跳过它)

以下代码显示 2 ListView,只有一个区别:

第一个 ListView 将 绑定ItemsSourceCollectionViewSource.View源设置为 a 的 a FileInformationFactory。下面的 UI 显示了一个按钮,可以选择 100 多张图片来填充它ListView(请参阅编辑部分)。

第二个 ListView 将 绑定ItemsSource到另一个CollectionViewSource.View,其源设置为 trivial ObservableCollection

结果

ItemsStackPanel只要' 的方向设置为,第一个 ListView 就会超出网格容器Horizontal。切换 ItemsSource 并没有解决这个问题,因此表明这个问题是特定于FileInformationFactory.GetVirtualizedFilesVector()方法的。

在此处输入图像描述

问题

如何在不丢失虚拟化的情况下解决这个问题?

谢谢

XAML

C#

编辑

问题已经缩小。这不是FileInformationFactory. ObservableCollection 有大量物品(在我的情况下约为 30k)也会出现问题,请参阅后面代码中的 ctor。在这个数字之下,所有项目都在网格内,而在这个数字之上,它们就离开了父容器。

0 投票
1 回答
652 浏览

c# - WPF 列表框虚拟化面板

我需要一些建议。我正在尝试使用扩展的详细信息项创建一个 ListBox。我还创建了 VirtualizingTilePanel,但不幸的是 ListBox 中的项目不会移动,因此项目的细节不可见。我用 ElasticWrapPanel 试过,但没有虚拟化。我需要维护虚拟化。我会很高兴得到任何建议。

源代码:ExpandItemVirtualizingTilePanel

带有 ElasticWrapPanel 的 ListBox 没有虚拟化: 在此处输入图像描述

具有 VirtualizingTilePanel 的 ListBox 具有虚拟化但没有滚动项​​目,您无法看到项目详细信息:

在此处输入图像描述

源代码 XAML

VirtualizingTilePanel(无法获得扩展项目)

0 投票
0 回答
32 浏览

wpf - WPF VirtualizingStackPanel 错误 - 宽度和高度必须为非

我有一个 WPF 应用程序(.NET 4.5.2),它有一个带有虚拟化、分组和大量模板的 ListView。这些组具有用于折叠和展开组的扩展器。折叠其中一个子组会引发以下错误。我似乎没有在任何地方明确设置宽度或高度,并且无法找出原因。

查看 .NET 源代码后,我尝试使用以下命令修改我的 app.config:

至少从表面上看,它似乎阻止了错误的发生,但可能会对我们现有的应用程序产生副作用,所以如果可能的话,我想不包括它。

在此发布代码将具有挑战性,但我正在寻找一些关于在调试中缩小范围的建议。到目前为止,我似乎找不到任何可能导致它的代码部分。

这似乎是一个以前没有报道过的新问题,所以我在想我不知道的框架变化。

任何建议可能会有所帮助...感谢您的关注。

在此处输入图像描述