我是silverlight
初学者,我的情况是我必须弹出一个包含三个按钮的消息框(是/否/好)。 请不要给我以下建议(我已经尝试过累了):
(1)使用Childwindow:虽然这是一个很好的解决方案,但它弹出的方式不像MessageBox弹出,因为在弹出的消息框中我们可以清楚地看到 后面的数据,但我们无法编辑/点击/更改它,而在子窗口弹出它不太明显。 (所以,如果你知道任何方法让孩子们回到原地 就像MessageBox一样可见,欢迎您告诉我替代方案)。
(2)使用PopUp控件:因为它没有完全弹出并且可以从MessageBox中轻松地消除,并且当PopUp控件是pop-Uped时,后面的数据总是可编辑的,并且如果我将它设置为Collapsed则它不会显示任何内容。所以我想要像MessageBox.Show()Pop Ups一样弹出。
然而在MeassageBox.Show()中我们可以看到,当它弹出时,后面的GUi是可见的但不可点击,它弹出的方式是完美的所以我想要 可以使用三个按钮以完全相同的方式弹出的东西。
有人可以帮助我实现目标吗?
答案 0 :(得分:1)
如果我理解了这个问题,你需要一个默认的MessageBox样式的弹出窗口,只有Yes / No / OK按钮。认识到没有一个理想的解决方案 - 即使Windows API(在完全信任之外你无法在Silverlight中访问)也没有提供这种按钮组合(不使用{{无论如何3}} advanced。
因此,您可以选择使用Popup
或ChildWindow
的非理想选项。我认为尝试模仿Windows对话框弹出窗口的确切样式是错误的,因为该样式取决于您无法从Silverlight访问的系统。相反,我建议您选择一种您感觉舒适的样式,并且该样式与您的应用程序的主题相匹配。
在任何情况下,与所有控件一样,您有两种样式ChildWindow
选项:
1)修改其techniques,例如OverlayOpacity
,BorderBrush
等。查看默认style properties,了解这些属性在控件中的使用方式&#39的介绍。
2)如果您需要进行比默认模板允许的更多自定义,那么您始终可以复制并修改ControlTemplate
。这使您可以对弹出窗口的所有内容进行细粒度控制,包括其打开/关闭动画。网上有很多关于修改控制模板的信息(例如,control template)。