Cuadro de texto Seleccione Todo en la pestaña pero no haga clic con el mouse

Entonces, digamos que tengo un formulario WPF con varios cuadros de texto, si se coloca un tabulador en el cuadro de texto y ya tiene algo, quiero seleccionar todo el texto en ese cuadro para que al escribirlo se borre ese texto. Si hace clic con el mouse en el cuadro, probablemente significa que desea cambiar una letra en algún lugar, así que no resalte todo en este caso. Parece bastante fácil, pero una buena solución hasta ahora me ha eludido. Esto es lo que tengo hasta ahora que es muycerrar A trabajar, pero no del todo perfecto.

<Style x:Key="TextBoxStyle" TargetType="TextBox">
    <EventSetter Event="GotKeyboardFocus" Handler="EventSetter_OnHandler" />
</Style>

private void EventSetter_OnHandler(object sender, RoutedEventArgs e)
{
    TextBox txt = sender as TextBox;
    if (txt != null) txt.SelectAll();
}

Entonces, cuando el cuadro se enfoca en el teclado, selecciona todo, por lo que al tabular el cuadro de texto, se selecciona todo el texto a la perfección. Sin embargo, si el mouse hace clic, también se llama a este método, lo que también resalta el texto, pero el clic coloca el cursor donde se hizo clic después. Así que funcionalmente es perfecto, pero todavía me molesta que parpadee seleccionando todo cuando el mouse hace clic. ¿Alguna forma mejor de hacer esto, o poner algún tipo de control en mi evento para saber que obtuve el enfoque del teclado con un clic del mouse y no con una pestaña?

Respuestas a la pregunta(5)

Su respuesta a la pregunta