如何为当前具有焦点的WPF DataGrid行设置边框

4

我想为当前拥有焦点的DataGrid行设置边框,但不是选定的行,因为当启用DataGrid的多重选择时,可能会选择多个行。

我需要一个XAML解决方案。

提前感谢!


顺便提一下,你应该把回答你问题的答案标记为解决方案。 - svick
2个回答

6
将以下内容添加到 DataGridRow 的样式中(可以使用资源或通过设置 DataGrid.RowStyle 实现):
<Style TargetType="DataGridRow">
    <Style.Triggers>
        <Trigger Property="IsFocused" Value="true">
            <Setter Property="BorderBrush" Value="Red" />
            <Setter Property="BorderThickness" Value="1" />
        </Trigger>
    </Style.Triggers>
</Style>

嗨,svick, 我已经尝试过这个了,但问题在于如果我通过Tab键保持对一行的焦点,那么我会得到边框,但如果我再按一次Tab键,焦点就会转移到单元格上,这时我就失去了边框,尽管它仍然是当前行。希望这很清楚。 - ksvimal
1
也许触发行的 IsSelected 属性而不是 IsFocused 属性会起作用? - Dan J

1

尝试使用IsKeyboardFocusWithin属性

    <Style.Triggers>
        <Trigger Property="IsKeyboardFocusWithin"
                 Value="True">
            <Setter Property="BorderBrush"
                    Value="Red" />
        </Trigger>
    </Style.Triggers>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接