我有“类似MDI”的界面,看起来像工具栏,标签和实际视图。我正在使用PRISM进行视图注入等等。
这是我面临的一个问题..我需要在整个应用程序中显示模态弹出窗口/对话框。 PRISM有一些解决方案,但这一切都归结为注入Silverlight Popup控件。这很有效,问题是它会阻挡整个屏幕。
在我的应用程序中,我需要那些弹出窗口对我注入的视图是“模态的”。好的,盒子里有MVVM培训http://visualstudiogallery.msdn.microsoft.com/3ab5f02f-0c54-453c-b437-8e8d57eb9942 在MVVM场景下,Karl展示了如何做到我想要的。他通过使用UserControl覆盖Grid来实现它。它非常适合鼠标点击,但我仍然可以选择按钮并按下Enter键并执行所有这些操作。如何只在屏幕的一部分显示弹出模式时阻止重叠的UI?
答案 0 :(得分:0)
我实际上通过creating a UserControl Popup做了类似的事情,并遇到了同样的问题。
我通过在UserControl上设置FocusManager.IsFocusScope="True"
来解决它,告诉WPF Popup内容与表单的其余部分是单独的FocusScope
,并设置KeyboardNavigation.TabNavigation="Cycle"
来制作Tab按钮循环通过当前的FocusScope,而不是在它到达结束时离开。