gpt4 book ai didi

wpf - 如何通过分组在 WPF4 DataGrid 中水平滚动期间消除显示损坏?

转载 作者:行者123 更新时间:2023-12-04 20:54:52 26 4
gpt4 key购买 nike

我正在尝试创建一个带有分组的数据网格,并且在水平滚动期间出现显示损坏(空白区域)。问题出现 只有当定义了 GroupStyle.ContainerStyle 时。数据网格应包含 200 行或更多行以重现该问题。

更新 2:
Related Microsoft Connect feedback .

更新:
微软人在 social.msdn.com指出添加分组会关闭数据网格虚拟化。可能这就是问题的根源。我从我的样本中删除了分组并设置了 VirtualizingStackPanel.IsVirtualizingfalse并得到了完全相同的腐败。

重现问题的代码:

<DataGrid ItemsSource="{Binding Source={StaticResource ResourceKey=cvsGoods}}"
CanUserAddRows="False" CanUserReorderColumns="False"
CanUserDeleteRows="False" CanUserResizeRows="False"
CanUserSortColumns="False" AutoGenerateColumns="True">
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<ItemsPresenter />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>
</DataGrid>

向右和向左水平滚动几次后,左侧会出现空白区域。我在 WinXP 和 Win7 上试过。

问题是:如何摆脱那个错误?有什么解决方法吗?有什么建议?

说明问题的屏幕截图:

Display corruption

最佳答案

我们曾经遇到过同样的问题(但原因不同),即数据网格将在某些行的第一列之前有空白区域。我们当时解决(破解)它的方法是禁用行标题(不知道它是如何解决问题的,但确实发现空白区域实际上是行标题)。

我们通过将宽度设置为零来禁用(正确的单词将使其大小为零)行标题,类似于下面的代码:

<wpftk:DataGrid>
...
...
<wpftk:DataGrid.RowHeaderStyle>
<Style TargetType="wpftk:DataGridRowHeader" >
<Setter Property="Width" Value="0" />
<Setter Property="MaxWidth" Value="0" />
</Style>
</wpftk:DataGrid.RowHeaderStyle>
...
...
</wpftk:DataGrid>

让我知道它是否适用于您的情况。

我们注意到的另一件事是,如果我们禁用虚拟化或 rowheaderstyle,它将解决我们的问题。我们去禁用 rowheader,因为我们不需要它。

关于wpf - 如何通过分组在 WPF4 DataGrid 中水平滚动期间消除显示损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5632871/

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