На самом деле, когда вы нажимаете, первый пункт меню фокусируется, хотя он не виден визуально. Вы можете подтвердить это, нажав кнопку, а затем нажав клавишу Enter . Тот факт, что элемент не выделен визуально, заключается в том, что вы щелкнули мышью, поэтому элемент управления предполагает, что вы продолжите взаимодействие с мышью, которая вместо этого имеет эффекты при наведении.
Если вместо этого вы нажмете кнопку, нажав Введите , то теперь она фактически покажет вам выделенный прямоугольник вокруг первого пункта меню, чтобы указать, что он сфокусирован, как у вас есть начал взаимодействие с клавиатурой.
Такое поведение согласуется с остальной частью системы, поэтому лучше сохранить его, так как пользователи могут зависеть
Как дополнительный совет, вам не нужно прикреплять всплывающее окно во время события click, но вы можете просто установить Button.Flyout
заранее и просто удалить обработчик Click
:
b.Flyout = MenuFlyout;
ContextFlyout
обычно используется для события щелчка правой кнопкой мыши. Чтобы раскрывающийся список открывался под элементом управления, вы можете установить его свойство Placement
:
MenuFlyout.Placement = FlyoutPlacementMode.Bottom;