Удалить прямоугольник фокуса на UserControl

У меня есть WPF UserControl с Focusable = "True". Это единственный фокусируемый элемент управления в окне.

Каждый раз, когда пользователь нажимает Tab или Alt (и особенно когда они нажимают Alt + Tab для другого приложения), мой UserControl получает границу из пунктирной линии, также называемую прямоугольником фокуса. Прямоугольник фокуса остается там, пока окно не закроется.

Как я могу запретить моему UserControl когда-либо отображать этот прямоугольник фокуса?

Редактировать

Оказывается, прямоугольник фокуса на самом деле не отображался моим UserControl. My Focusable UserControl содержал другой UserControl, который, в свою очередь, содержал ItemsControl, а ItemsControl - это то, что показывало прямоугольник фокуса.

Когда я добавил FocusVisualStyle = "{x: Null}" в ItemsControl, прямоугольник фокуса исчез.


person Joe White    schedule 04.05.2009    source источник
comment
Вы уверены, что это UserControl, а не элемент внутри него, который принимает прямоугольник? Я не мог воспроизвести это для чистого UserControl с быстрым тестированием.   -  person Mikko Rantanen    schedule 04.05.2009
comment
Интересный. Я проверю это.   -  person Joe White    schedule 04.05.2009
comment
Микко, спасибо, что направил меня на правильный путь - см. Редактирование.   -  person Joe White    schedule 04.05.2009


Ответы (1)


Если вы в любом случае не хотите отображать прямоугольник фокуса, вы можете установить для FocusVisualStyle значение null.

<MyControl FocusVisualStyle="{x:Null}" />
person Sacha Bruttin    schedule 04.05.2009
comment
Я предполагаю, что это произойдет с UserControl, у которого Focusable = True. Если так, то никакого эффекта. Он по-прежнему показывает прямоугольник с пунктирной линией, как только я нажимаю Alt. - person Joe White; 04.05.2009
comment
Не бери в голову. Это сработало, когда я нашел нужный элемент управления, чтобы надеть его. См. Редактировать. - person Joe White; 04.05.2009
comment
Я пытался придумать, как это сделать целую вечность. Спасибо - person Phil Rogers; 19.01.2021