以编程方式集中于uwp中的网格控制

问题描述 投票:0回答:1

我在UWP应用程序中拥有一个带有KeyUp处理程序的Grid控件。在此网格上,我有一个按钮。单击按钮时,按钮将保持焦点。结果,击键事件没有由连接到网格的处理程序处理。这是我应用程序中的不良行为。

如果我在网格上手动单击,它将获得焦点,并且关键事件再次起作用,这是您期望的行为。我想以编程方式解决此问题。我当时正在考虑通过在按钮单击事件代码中实施代码来解决此问题,该代码将焦点再次设置到网格上。

跟上这份文件https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.control.focus

所以我希望能够写Grid.Focus(FocusState.Programmatic);但是,Grid控件上不存在Focus方法。

任何人都知道我在做错什么,否则该如何解决?

XAML的简化示例

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" x:Name="Grid" KeyUp="Grid_KeyUp">
    <Button Content="MP3" Margin="5" Click="btnOpenMP3_Click" />
</Grid>
c# uwp focus grid-layout
1个回答
0
投票

以编程方式集中于uwp中的网格控制

从此case派生:

键按下事件仅从键盘焦点控制触发。网格不是控件,而网格是面板。在UWP中,只有控件可以设置焦点。

请尝试编写一个空控件并将其添加到网格中,然后以编程方式设置控件焦点。

有关详细步骤,请参阅上面的案例链接。

© www.soinside.com 2019 - 2024. All rights reserved.