56
votes

I have a WPF UserControl with Focusable="True". It's the only focusable control in the window.

Whenever the user presses Tab or Alt (and especially when they Alt+Tab to another application), my UserControl acquires a dotted-line border, aka focus rectangle. The focus rectangle then stays there until the window is closed.

How can I prevent my UserControl from ever displaying this focus rectangle?

Edit

It turns out the focus rectangle wasn't actually being displayed by my UserControl. My Focusable UserControl contained another UserControl that, in turn, contained an ItemsControl, and the ItemsControl is what was showing the focus rectangle.

When I added FocusVisualStyle="{x:Null}" to the ItemsControl, the focus rectangle went away.

1
Are you sure it's the UserControl and not an element inside it which acquires the rectangle? I couldn't duplicate this for a pure UserControl with quick testing.Mikko Rantanen
Interesting. I'll check it out.Joe White
Mikko, thanks for putting me on the right track -- see edit.Joe White

1 Answers

75
votes

If you want to not display the focus rectangle in any case you could set the FocusVisualStyle to null.

<MyControl FocusVisualStyle="{x:Null}" />