wpf - WPF DataGrid 的平滑滚动

标签 wpf datagrid scroll

我正在使用 WPF 数据网格,我所做的唯一修改是:

    <toolkit:DataGridTextColumn.ElementStyle>
       <Style TargetType="TextBlock">
       <Setter Property="TextWrapping" Value="Wrap"/>
      </Style>
    </toolkit:DataGridTextColumn.ElementStyle>

我进行了此修改,因此如果单元格内容较长,它们会拉伸(stretch)行高,不会隐藏任何文本。 问题在于 DataGrid 的滚动行为 - 滚动时它会跳过整行,如果行高于一行,则根本无法正常工作 - 滚动条在滚动时会抖动等。

有没有办法让WPF DataGrid“平滑”滚动而不是逐行滚动?

谢谢

最佳答案

我还没有明确使用 DataGrid,但事实上,使用 ScrollViewer.CanContentScroll=False 会替换使用 VirtualizedStackPanel 的默认 ItemsPanelTemplate 与常规的 StackPanel 。它将平滑滚动,但即使它不可见,它也会渲染每个项目。

如果您正在处理复杂的可视化树或大型数据集,这绝对会降低性能。

关于wpf - WPF DataGrid 的平滑滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2303120/

相关文章:

WPF:属性绑定(bind)不会在运行时更新

iphone - 像 Amazon 应用程序一样滚动以在 UITableView 中加载更多单元格

jquery - 在 Bootstrap 选项卡之间切换时保持滚动位置

html - 本地背景附件 - 如何让子元素具有背景颜色并仍然看到滚动效果?

c# - WPF 依赖属性 - 数据绑定(bind)不起作用

c# - 如何在WPF中禁用XamDataGrid单元格编辑

c++ - 将现有 C 项目转换为 WPF

datagrid - material-ui DataGrid - 如何从 onRowClick 中分离选择行复选框

c# - 帮助用数据库数据XAML修改datagrid

c# - 将 Listbox.ItemContainerStyle 绑定(bind)到当前项目属性