在WPF中显示已加载控件上的焦点元素

时间:2019-03-07 10:23:38

标签: wpf focus highlight

在加载后如何在视图中突出显示聚焦的元素?我知道它是集中的,因为如果按Enter或使用键盘导航,它的行为将达到预期的效果;如果导航回第一个元素,它将正确突出显示。我只想向用户说明加载视图后选择了哪个元素。这是通过按钮或复选框发生的。

2 个答案:

答案 0 :(得分:0)

如果控件是焦点元素,则将应用焦点样式。焦点元素与默认元素不同,默认元素可以允许在按下回车键时执行操作。

需要显式设置焦点,在本示例中,它是在下一行完成

FocusManager.FocusedElement="{Binding ElementName=Button}"

这将焦点设置在按钮上,运行此按钮应看到按钮突出显示。删除上面的行,该按钮将不会突出显示。

<Window x:Class="WpfApp4.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        FocusManager.FocusedElement="{Binding ElementName=Button}"
        mc:Ignorable="d"        
        Title="MainWindow" Height="450" Width="800">
    <StackPanel>
        <Button IsDefault="False"
                Width="150"
                Height="30"
                Name="Button"
                Content="Button"/>
    </StackPanel>
</Window>

答案 1 :(得分:0)

哇,我完全忘了问这个问题。最后,我必须删除样式上设置的FocusVisualStyle属性,并在IsFocused事件上编写一个简单的触发器,这解决了我的问题。