【发布时间】:2012-09-05 10:18:17
【问题描述】:
我正在开发一个具有 Metro 外观的 WPF-MVVM (.Net 4.0) 应用程序(它只是外观,它不是 Metro 应用程序。) 我需要显示一个类似于 Windows 8 的消息框,该消息框会在用户通过单击是/否/取消(或任何按钮)删除该消息框之前阻止用户的操作。
我遇到了这个非常棒的article,并暂时认为我已经找到了解决方案。但这有其自身的缺点。它只是阻止用户通过鼠标单击与后面的控件进行交互。但是,用户可以使用 Tab 键返回到后面的按钮并单击它们(按 Enter)。
我想到了很多事情:
我应该选择自定义装饰器并使用 hitTestable 属性吗?
或者我应该放置一个控件并使用它的可见属性。
在采用任何方法之前,如果有人过去做过类似的事情,我想在这里向精彩的社区提出我的问题,并为我提供一些指针/参考/方法。
有人可以建议实现这一目标的方法吗?请注意,如果可以解决目的,我将很乐意使用 prism 或任何其他开源软件,但必须定制窗口。 如果您觉得这个问题太愚蠢,请原谅。请原谅我的无知。感谢您阅读本文。
【问题讨论】:
-
看看wpftoolkit.codeplex.com/… 中的 ChildWindow ...您应该能够重新设置“窗口”的样式以使其看起来像您想要的那样。