【问题标题】:How to make custom MessageBox in silverlight如何在 silverlight 中制作自定义 MessageBox
【发布时间】:2014-07-18 13:42:43
【问题描述】:

我是silverlight 初学者,我必须弹出一个包含三个按钮(是/否/确定)的消息框。 请不要给我以下建议(我已经试过很累了):

(1) 使用Childwindow:虽然是一个很好的解决方案,但是它的弹出方式不像MessageBox弹出那样,因为在弹出消息框时我们可以清楚地看到 后面的数据,但我们无法编辑/单击/更改它,而在弹出的子窗口中它不太明显。 (因此,如果您知道任何使 childwindow 成为背景的方法 就像 MessageBox 一样可见,那么欢迎您告诉我替代方案)。

(2) 使用 PopUp 控件:因为它不会完全弹出并且可以很容易地从 MessageBox 中区分出来,并且当弹出 PopUp 控件并且如果我将其设置为 Collapsed 时,它后面的数据始终是可编辑的,那么它什么也不显示。所以我想像 MessageBox.Show() Pop Ups 一样弹出。

而在 MeassageBox.Show() 中,我们可以看到当它弹出时,后面的 GUI 可见但不可点击,而且它的弹出方式很完美,所以我想要 可以通过三个按钮以完全相同的方式弹出的东西。

有人可以帮我实现我的目标吗?

【问题讨论】:

  • OverlayBrushOverlayOpacity 属性为 ChildWindow
  • @VladimirFrolov 谢谢,但请解释一下如何处理它们。更详细一点。
  • 我无法在 ChildWindow 中编辑任何内容。
  • @VladimirFrolov 我得到了编辑 OverlayBrush 和 OverlayOpacity 的方法;您建议我在其属性中进行哪些其他更改,以便它提供确切的 MessageBox.Show() 类型的视图。

标签: c# .net silverlight silverlight-5.0 messagebox


【解决方案1】:

如果我理解了这个问题,您想要一个默认 MessageBox 样式的弹出窗口,只有是/否/确定按钮。认识到没有理想的解决方案——即使Windows API(在完全信任的情况下您无法在 Silverlight 中访问)也没有提供这种按钮组合(无论如何都不使用advancedtechniques) .

因此,您只能选择使用PopupChildWindow。我认为尝试模仿 Windows 对话框弹出窗口的确切样式是错误的,因为该样式取决于系统,而您无法从 Silverlight 访问该样式。相反,我建议您只选择一种您喜欢的风格,并且与您的应用程序的主题相匹配。

在任何情况下,与所有控件一样,您有两个选项可以设置ChildWindow 的样式:

1) 修改其style properties,如OverlayOpacityBorderBrush 等。查看默认的control template 以了解这些属性在控件的演示文稿中是如何使用的。

2) 如果您需要进行比默认模板允许的更多的自定义,那么您可以随时复制和修改ControlTemplate。这使您可以对弹出窗口外观的所有内容进行细粒度控制,包括其打开/关闭动画。网上有很多关于修改控件模板的信息(例如,MSDN)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2019-01-02
    • 1970-01-01
    相关资源
    最近更新 更多