创建弹出窗口,但无法按 Tab 键转到背景元素

本文关键字:Tab 元素 背景 窗口 创建 | 更新日期: 2023-09-27 17:57:16

我正在尝试创建一个弹出窗口,但是当它打开时,仍然可以使用 Tab 键将焦点切换到背景中的元素(例如,切换到按钮并使用空格按下是)。到目前为止,我发现的唯一方法是检查每个 lostFocus 事件(也会为 Border 元素中包含的每个元素触发),并检查焦点现在是否位于 Border 内的元素中。如果没有,我手动设置焦点。有没有更好的方法将焦点保持在边框(或网格,...内)

我正在开发一个Windows 8应用程序。

创建弹出窗口,但无法按 Tab 键转到背景元素

您的意思是将模式对话框与 Form.ShowDialog(Owner) 一起使用仍然允许您使用 Tab 聚焦父组件?

你能给出一个代码调用的示例吗?

Form2 form = new Form2(); //Make an instantiation of your Form
form.ShowDialog(); //ShowDialog()!!! NOT form.Show()!!! Or anything else :/

一些想法:

  • Enabled设置为在背景可视化树上False,但如果仍想部分显示它们,这可能会改变外观
  • IsHitTestVisible设置为 False 以禁用指针输入
  • 如果面向 Windows 8.1,请使用RenderTargetBitmap.Render()将背景内容呈现为图像,只需将所有可视化树替换为图像