FocusVisualStyle изначально не отображается при открытии нового окна.C#

Место общения программистов C#
Anonymous
FocusVisualStyle изначально не отображается при открытии нового окна.

Сообщение Anonymous »

У меня есть собственное окно с шаблоном элемента управления: Если я открою окно, я хочу, чтобы первая кнопка имела фокус клавиатуры вместе с визуализацией фокуса клавиатуры:

Код: Выделить всё

public class MyWindow : Window { }

//-------------------

var window = new MyWindow();
window.Loaded += (o, args) =>
{
window.Dispatcher.BeginInvoke(new Action(() =>
{
var btn = WPFUtils.GetFirstChildWithName((DependencyObject)o, "btn"); // just some helper method which finds the button control on the window in a recursive way
Keyboard.Focus(btn);
}));
};
window.ShowDialog();
Похоже, что фокус клавиатуры успешно применен, но визуальный стиль фокуса не отображается.
[img]https://i. sstatic.net/iVtYmEIj.png[/img]

Если я внезапно нажал ALT, визуализация фокуса отрисовывается.
Если я нажимаю TAB, фокус правильно отображается на второй кнопке.
Изображение

и если я нажму TAB второй раз, он будет виден на первой кнопке.
Изображение

Кто-нибудь знает, как включить визуализацию фокуса при открытии окна?
Установка дополнительно логического фокуса тоже не помогла:

Код: Выделить всё

FocusManager.SetFocusedElement(window, btn);
Обновление:
Даже если в конечном итоге кнопка будет иметь правильную визуализацию фокуса, если я щелкну за пределами окна, например на панели задач, и нажму кнопку Вернувшись в строку заголовка окна, визуализация фокуса клавиатуры снова не отображается, хотя для кнопки «IsKeyboardFocused» установлено значение true...

Подробнее здесь: https://stackoverflow.com/questions/790 ... -is-opened

Вернуться в «C#»