【Silverlight】使用ChildWindow实现MessageBox
2009-08-02 21:58
405 查看
最近项目上需要实现一个询问提示消息框,但猛的发现人家Silverlight类库提供的MessageBox类只有简单的两个重载方法,百思不得其解,不知为什么不提供,没有办法只有自己做一个,其实不是很难办,因为Silverlight3以后提供了ChildWindow,下面是实现代码,希望对大家有用,请多多支持。
效果:调用方法
void btnTest_Click(object sender, RoutedEventArgs e)
{
MsgBox("$$$管理系统",
"您确定要发点大大大大大大大大财吗?",
MsgBoxCloseCallBack);
}
public void MsgBox(string title, string msg, MsgBoxWindow.MsgBoxCloseCallBack callBack)
{
MsgBox(title, msg,
MsgBoxWindow.MsgIcon.Information,
MsgBoxWindow.MsgBtns.YesNoCancel, callBack);
}
public void MsgBox(string title, string msg, MsgBoxWindow.MsgIcon icon, MsgBoxWindow.MsgBtns btns, MsgBoxWindow.MsgBoxCloseCallBack callBack)
{
MsgBoxWindow msgBox = new MsgBoxWindow();
msgBox.Show(title,
msg,
icon,
btns,
callBack);
}
void MsgBoxCloseCallBack(object sender, MsgBoxWindow.MsgBoxCloseCallBackArgs e)
{
MessageBox.Show(e.Result.ToString());
}
Demo及Source下载链接/Files/Hedonister/SilverlightMsgBox.zip
不过这个实现有个问题,在调用ChildWindow的show方法时,必须使用回调才能得到消息框的结果,使用起来很是别扭,如果有哪位同志能实现同步方式的,请与我联系,必有重奖。
效果:调用方法
void btnTest_Click(object sender, RoutedEventArgs e)
{
MsgBox("$$$管理系统",
"您确定要发点大大大大大大大大财吗?",
MsgBoxCloseCallBack);
}
public void MsgBox(string title, string msg, MsgBoxWindow.MsgBoxCloseCallBack callBack)
{
MsgBox(title, msg,
MsgBoxWindow.MsgIcon.Information,
MsgBoxWindow.MsgBtns.YesNoCancel, callBack);
}
public void MsgBox(string title, string msg, MsgBoxWindow.MsgIcon icon, MsgBoxWindow.MsgBtns btns, MsgBoxWindow.MsgBoxCloseCallBack callBack)
{
MsgBoxWindow msgBox = new MsgBoxWindow();
msgBox.Show(title,
msg,
icon,
btns,
callBack);
}
void MsgBoxCloseCallBack(object sender, MsgBoxWindow.MsgBoxCloseCallBackArgs e)
{
MessageBox.Show(e.Result.ToString());
}
Demo及Source下载链接/Files/Hedonister/SilverlightMsgBox.zip
不过这个实现有个问题,在调用ChildWindow的show方法时,必须使用回调才能得到消息框的结果,使用起来很是别扭,如果有哪位同志能实现同步方式的,请与我联系,必有重奖。
相关文章推荐
- [Silverlight入门系列]不用ChildWindow的自定义MessageBox及其MVVM实现(1)
- 使用IIS Express 7.5实现支持Https的Silverlight登录
- 使用silverlight实现多文件上传
- SilverLight学习笔记--使用WebClient实现通讯(一)(上传和下载字符串数据)
- 使用SilverLight构建插件式应用程序(八) —聊天插件Duplex WCF的实现
- 在Silverlight中使用textbox实现下拉列表
- 稳扎稳打Silverlight(32) - 2.0Tip/Trick之MessageBox, Popup, 循环的几种实现方法, 动态变换主题, 本地化(多语言), 响应鼠标双击事件
- 一步一步学Silverlight 2系列(30):使用Transform实现更炫的效果(下)
- 稳扎稳打Silverlight(32) - 2.0Tip/Trick之MessageBox, Popup, 循环的几种实现方法, 动态变换主题, 本地化(多语言), 响应鼠标双击事件
- [Silverlight]使用PagedCollectionView配合复选框实现动态筛选的解决方案
- Silverlight教程第六部分:使用用户控件实现主从表场景
- 一步一步学Silverlight 2系列(30):使用Transform实现更炫的效果(下)
- SilverLight企业应用框架设计【五】客户端调用服务端(使用JSON传递数据,自己实现RESTful Web服务)
- 使用Silverlight 2实现水中倒影效果
- 使用Silverlight Toolkit实现弹窗---ChildWindow
- 使用WebClient实现通讯(Silverlight学习笔记)
- 使用silverlight中的Storyboard实现动画效果
- SilverLight学习笔记--使用WebClient实现通讯(一)(上传和下载字符串数据)
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- Bing Maps进阶系列六:使用Silverlight剪切(Clip)特性实现Bing Maps的迷你小地图