繁体   English   中英

如何在silverlight中制作自定义MessageBox

[英]How to make custom MessageBox in silverlight

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

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

(2)使用PopUp控件:因为它没有准确弹出并且可以从MessageBox中轻松地消除,并且当PopUp控件是pop-Uped时,后面的数据总是可编辑的,如果我将它设置为Collapsed则它什么都不显示。 所以我想要像MessageBox.Show()Pop Ups一样弹出。

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

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

如果我理解了这个问题,你需要一个默认MessageBox样式的弹出窗口,只有Yes / No / OK按钮。 认识到没有一个理想的解决方案 - 即使Windows API (在完全信任之外你无法在Silverlight中访问)也不提供这种按钮组合(无论如何都不使用高级 技术 )。

所以,你留下了使用PopupChildWindow的非理想选项。 我认为尝试模仿Windows对话框弹出窗口的确切样式是错误的,因为该样式取决于您无法从Silverlight访问的系统。 相反,我建议您选择一种您感觉舒适的样式,并且该样式与您的应用程序主题相匹配。

在任何情况下,与所有控件一样,您有两种样式用于样式化ChildWindow

1)修改其样式属性,OverlayOpacityBorderBrush等。查看默认控件模板 ,了解如何在控件的演示文稿中使用这些属性。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM