gpt4 book ai didi

wpf - 在 WPF 数据网格中使行不可聚焦

转载 作者:行者123 更新时间:2023-12-03 23:14:16 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何使以下 WPF DataGrid 中的行不可聚焦。如您所见,我尝试添加 <DataGrid.Resources>我在其中指定 DataGrid 单元格样式的 DataGrid 部分,但这不起作用。我错过了什么?

<DataGrid Name="grdResources"
AutoGenerateColumns="False" SelectionUnit="FullRow"
AlternatingRowBackground="LightBlue" CanUserDeleteRows="False" CanUserAddRows="False"
CanUserReorderColumns="False" ClipboardCopyMode="ExcludeHeader">

<DataGrid.Resources>
<DataGridTemplateColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Focusable" Value="False"/>
</Style>
</DataGridTemplateColumn.CellStyle>
</DataGrid.Resources>

<DataGrid.Columns>
<DataGridTemplateColumn Header="Select" IsReadOnly="True" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Name="Select" Tag="{Binding}" Click="Select_Click"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

<DataGridTemplateColumn Header="Key" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<Label Content="{Binding Path=Key}"></Label>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

<DataGridTemplateColumn Header="Value" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding Path=Value}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>

编辑对于那些感兴趣的人,我最终覆盖了 SelectedRow 样式,因此它不会在选中时突出显示该行。这是我的 <DataGrid.Resources>更改后的部分:

    <DataGrid.Resources>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="1"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>

最佳答案

使用 IsHitTestVisible = False

<DataGrid.Resources>
<Style x:Key="NoFocusColumStyle" TargetType="{x:Type DataGridCell}">
<Setter Property="IsHitTestVisible" Value="False"/>
</Style>
</DataGrid.Resources>

然后将样式应用于您想要限制焦点的任何列

<DataGridTextColumn CellStyle="{StaticResource NoFocusColumStyle}" ... />

关于wpf - 在 WPF 数据网格中使行不可聚焦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6778094/

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