创建弹出窗口而无法选项卡到背景元素

时间:2014-04-08 13:35:16

标签: c# windows-8 popup windows-runtime winrt-xaml

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

我正在使用Windows 8应用程序。

3 个答案:

答案 0 :(得分:1)

您的意思是使用带有Form.ShowDialog(Owner)的{​​{3}}仍允许您使用Tab键聚焦父组件吗?

您能举例说明您的代码吗?

答案 1 :(得分:0)

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

答案 2 :(得分:0)

一些想法:

  • 在背景视觉树上将Enabled设置为False,但如果您仍想部分展示它们,可能会改变外观的方式
  • IsHitTestVisible设置为False以禁用指针输入
  • 如果以Windows 8.1为目标,使用RenderTargetBitmap.Render()将背景内容呈现给图片,只需将所有可视树替换为图像