我一直在努力禁用数据网格行上的悬停、鼠标悬停和行选择。我过去曾在 Wpf 应用程序中使用过以下代码,它运行得很好。然而,我正在将代码迁移到新的 Winui3 的过程中,但我无法让它再次工作。
但问题是如何隐藏行选择。看这张图:
这是适用于 Wpf 的代码;
<controls:DataGrid.Style>
<Style TargetType="controls:DataGridCell">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
</Style>
</controls:DataGrid.Style>
现在,
FocusVisualStyle
不存在。我可以通过覆盖一些画笔资源来禁用选择的单元格边框:
<SolidColorBrush x:Key="DataGridCellFocusVisualPrimaryBrush" Color="Transparent" />
<SolidColorBrush x:Key="DataGridCellFocusVisualSecondaryBrush" Color="Transparent" />
这应该有效:
<controls:DataGrid>
<controls:DataGrid.Resources>
<Color x:Key="DataGridRowSelectedBackgroundColor">Transparent</Color>
<Color x:Key="DataGridRowSelectedHoveredUnfocusedBackgroundColor">Transparent</Color>
<Color x:Key="DataGridRowSelectedUnfocusedBackgroundColor">Transparent</Color>
<!--
This one is better not being just "Transparent".
This way you won't lose visual effects for hovered selected rows.
-->
<StaticResource
x:Key="DataGridRowSelectedHoveredBackgroundColor"
ResourceKey="SystemListLowColor" />
</controls:DataGrid.Resources>
</controls:DataGrid>
您可以在 GitHub repo 中找到颜色。