WPF: Problems with Keyboard Focus When Using Validation

If you use WPF’s data binding with validation a red border appears around controls with invalid values, you can also use the Validation.ErrorTemplate attached property to get a better look for the invalid controls.

But – if you try this you’ll discover that there’s a new tab stop on you from, the red frame (or your own template) now accepts focus, breaking tab navigation.

The problem is that that the validation framework will add a control to the adorner layer in order to display the error indicator – and this control is focusable.

To fix it just add the following to the Window’s resources (or the application resources).

<Style TargetType="{x:Type Control}">
    <Setter Property="Focusable" Value="False"/>
</Style>

This shouldn’t cause any problems because almost no one uses Control itself and this style will not affect subclasses, but you still have to test everything after the change.

posted @ Sunday, May 25, 2008 3:44 PM | Post to Twitter

Comments on this entry:

# re: WPF: Problems with Keyboard Focus When Using Validation

Left by udallmann at 7/23/2008 10:43 PM

Thanks! This solution works perfectly.
You saved me hours of work!!

Your comment:



 (will not be displayed)


 
 
 
Please add 3 and 6 and type the answer here: