在 WinUI 3 DataGrid 中禁用行选择

问题描述 投票:0回答:1

我一直在努力禁用数据网格行上的悬停、鼠标悬停和行选择。我过去曾在 Wpf 应用程序中使用过以下代码,它运行得很好。然而,我正在将代码迁移到新的 Winui3 的过程中,但我无法让它再次工作。

但问题是如何隐藏行选择。看这张图:

1

这是适用于 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" />
c# datagrid winui-3 winui windows-community-toolkit
1个回答
2
投票

这应该有效:

<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 中找到颜色。

© www.soinside.com 2019 - 2024. All rights reserved.