Fokus wird nicht angezeigt, wenn der Fokus programmgesteuert navigiert wird

Wenn ich programmgesteuert versuche, den Fokus zu verschieben, wird das Fokusvisual (das gepunktete Rechteck) nicht angezeigt.

Was kann getan werden, um diese visuelle Anzeige zu erzwingen?

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" Loaded="OnLoaded">
    <StackPanel>
        <TextBlock x:Name="a" Focusable="True">A</TextBlock>
        <TextBlock Focusable="True">B</TextBlock>
        <Button Focusable="False" Click="OnClick">Move Focus</Button>
    </StackPanel>
</Window>

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void OnLoaded(object sender, RoutedEventArgs e)
    {
        Keyboard.Focus(a);
    }

    private void OnClick(object sender, RoutedEventArgs e)
    {
        var request = new TraversalRequest(FocusNavigationDirection.Next);
        var elementWithFocus = Keyboard.FocusedElement as UIElement;
        if (elementWithFocus != null)
            elementWithFocus.MoveFocus(request);
    }
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage