繁体   English   中英

C# WPF 数据网格缓慢滚动

[英]C# WPF Datagrid slow Scrolling

我在滚动数据网格时遇到问题。 我正在使用 WPF C# 应用程序和 4.7.2 .NET 框架。 我将大约 5000 个数据集加载到数据表中,并使用数据网格显示。 当我通过 Visual Studio 2019 编译器运行程序并滚动记录时,结果实际上很好。 但是,如果我通过 the.exe 启动程序,则整个程序在滚动时会挂起一点。 我在论坛上找到了一些东西并尝试了它们,但对我来说效果不佳=>

<DataGrid EnableRowVirtualization="False" VirtualizingStackPanel.IsVirtualizing="False"
ScrollViewer.CanContentScroll=False />

当我尝试这样做时,滚动结果更好,但加载数据库时的性能极差。

<DataGrid Width = 400, Height = 400/>

<DataGrid.CellStyle>
    <Style TargetType="DataGridCell">
       <Setter Property="Height" Value="50"/>
    </Style>
</DataGrid.CellStyle>

一篇帖子提到应该调整数据网格和单元格的高度。 然而,这也没有成功

<DataGrid VirtualizingStackPanel.VirtualizationMode="Standard"

ItemsSource="{Binding MyStuff, IsAsync=True}" />

到目前为止,我已经使用 VirtualizingStackPanel.VirtualizationMode="Standard" 获得了最好的结果。 滚动仍然很不稳定,但加载时间不长。 或者,您可以设置项源 IsAsync=True,但这并没有多大帮助。

不幸的是,我还没有找到更好的方法来避免性能损失并能够平滑滚动。 你还有其他建议吗? 亲切的问候

我有类似的问题。 尝试使用VirtualizingPanel.ScrollUnit="Pixel" RenderOptions.CachingHint="Cache" VirtualizingPanel.CacheLength="10" VirtualizingPanel.CacheLengthUnit="Pixel" 您可以根据数据集调整缓存长度。 但记得使用分析器(ALT + F2 IN VS2022)

ScrollVIewer.CanContentScroll设置为true也许这对你有用

这是我很久以前报告的WPF中的性能问题。

不幸的是,由于缺乏人员,WPF 团队目前不是很活跃。

我可以想象,使用 .NET 7 我们将通过( PGO - 配置文件引导优化)在这里得到一点提升。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM