У меня есть элемент управления Grid с обработчиком KeyUp, прикрепленным к нему в приложении UWP. На этой сетке у меня есть кнопка. При нажатии на кнопку, кнопка сохраняет фокус. В результате события нажатия клавиш не обрабатываются обработчиком, прикрепленным к сетке. Это нежелательное поведение в моем приложении.
Если я нажму на сетку вручную, она снова получит фокус и ключевые события снова заработают, что является желательным поведением. Я хочу решить это программно. Я думал решить эту проблему, внедрив в код события нажатия кнопки, который снова установит фокус на сетке.
Придумал этот документ https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.control.focus
Так что я ожидал, что смогу написать Grid.Focus(FocusState.Programmatic);
Однако метод Focus не существует в элементе управления Grid .
Кто-нибудь знает, что я делаю неправильно или как это можно решить иначе?
Упрощенный пример XAML
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" x:Name="Grid" KeyUp="Grid_KeyUp">
<Button Content="MP3" Margin="5" Click="btnOpenMP3_Click" />
</Grid>