我是 silverlight
初学者,我必须弹出一个包含三个按钮(是/否/确定)的消息框。 请不要给我以下建议(我已经试过了,累了):
(1) 使用Childwindow : 虽然是一个很好的解决方案,但是它弹出的方式不像MessageBox 那样弹出,因为在弹出的消息框中我们可以清楚地看到 后面的数据,但我们无法编辑/单击/更改它,而在弹出的子窗口中它不太可见。 (所以如果你知道有什么方法可以让子窗口成为背景 就像 MessageBox 一样可见,那么非常欢迎您告诉我替代方案)。
(2) 使用 PopUp 控件:因为它不会完全弹出并且可以很容易地从 MessageBox 中区分出来,并且当 PopUp 控件弹出时后面的数据始终是可编辑的,如果我将它设置为 Collapsed 那么它什么都不显示。所以我想像 MessageBox.Show() 弹出窗口一样弹出。
而在 MeassageBox.Show() 中我们可以看到,当它弹出时,后面的 GUI 是可见的但不可点击,而且它弹出窗口的方式是完美的,所以我想要 可以通过三个按钮以完全相同的方式弹出的东西。
有人可以帮助我实现我的目标吗?
最佳答案
如果我理解这个问题,您想要一个默认 MessageBox 样式的弹出窗口,只有 Yes/No/OK 按钮。认识到没有理想的解决方案——即使是 Windows API (除非完全信任,否则您无法在 Silverlight 中访问)不提供此按钮组合(无论如何不使用 advanced techniques)。
因此,您只剩下使用 Popup
或 ChildWindow
的非理想选择。我认为尝试模仿 Windows 对话框弹出窗口的确切样式是错误的,因为该样式取决于您无法从 Silverlight 访问的系统。相反,我建议只选择一种您喜欢的风格,并且与您的应用程序的主题相匹配。
在任何情况下,与所有控件一样,您有两种样式选择 ChildWindow
:
1) 修改其style properties比如OverlayOpacity
, BorderBrush
等。看看默认的control template查看这些属性是如何在控件的演示中使用的。
2) 如果您需要进行比默认模板允许的更多自定义,那么您可以随时复制和修改ControlTemplate
。这允许您对弹出窗口外观的所有内容进行细粒度控制,包括其打开/关闭动画。网上有很多关于修改控件模板的信息(例如,MSDN)。
关于c# - 如何在 silverlight 中制作自定义 MessageBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24826488/