我很难让按钮的焦点装饰器显示何时最初将焦点放在负载上。该按钮具有焦点,但装饰物未显示。如果我使用TAB循环浏览并返回控件,那么装饰器将显示。我以为这可能是我的自定义样式的问题,但是作为一个健全性检查,我创建了一个非常简单的窗口,它表现出相同的行为:
<Window x:Class="WpfApp1.Window2"
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"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
FocusManager.FocusedElement="{Binding ElementName=txtYes}"
Title="My Window" Width="300" SizeToContent="Height">
<Grid Margin="20">
<StackPanel>
<Button Content="Yes" x:Name="txtYes">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter Property="Background" Value="Wheat" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<Button Content="No" x:Name="txtNo"/>
<Button Content="Cancel" x:Name="txtCancel"/>
</StackPanel>
</Grid>
如果运行此命令,您会注意到“确定”按钮是最确定的焦点,但是装饰器未显示。按下选项卡将焦点移至“否”按钮并显示其装饰物。按住Shift键并在YES按钮上正确显示装饰。有趣的是,如果我按Alt键,装饰器会显示(我发现这样做是通过Alt + Print Screen进行屏幕截图)。
关于这是为什么的任何想法,以及我需要向装饰者展示什么?