我想为消息对话框创建一个用户控件,以便根据需要更改消息对话框的UI。例如,如果我传递标题,消息和类型,那么根据消息的类型,它应该显示该消息对话框。 类型可以是:错误,警告,简单消息等。我该如何实现? 当类型设置为错误示例时,自定义消息对话框的UI应如下所示:
答案 0 :(得分:2)
这比你想象的要难得多。挑战在于确保对话框保持异步并将其置于可视化树中。 Gope已经提到了Callisto框架中的 CustomDialog ,但我发现这是非常有限的。相反,我遵循了这篇非常棒的文章,向您展示如何创建一个可用于显示任何用户控件的通用对话框:
为Win8应用创建自定义异步对话框 http://www.visuallylocated.com/post/2012/11/12/Creating-a-custom-async-dialog-for-your-Win8-apps-Part-2-CustomDialog.aspx
开发人员的支持,设计支持和更加出色的善意:http://bit.ly/winappsupport
答案 1 :(得分:0)
天哪,你问了很多!
:)
好的,这样做,我会引导你,你做你的一部分:
创建一个类SysDialog:HtmlGenericControl
public SysDialog() {
TagName = 'div';
}
public string Title {get;set;}
public string Message {get;set;}
public string MessageType {get;set;}
public SysDialog Render(){
HtmlGenericControl title = new HtmlGenericControl ();
title.TagName = "div";
HtmlGenericControl msg = new HtmlGenericControl ();
msg.TagName = "div";
title.InnerHTML = Title;
msg.InnerHTML = Message;
Controls.Add(title);
Controls.Add(msg);
title.Attritbues.Add("class", "title-" + MessageType);
msg.Attritbues.Add("class", "msg-" + MessageType);
Attritbues.Add("class", "sysdlg-" + MessageType);
return this;
}
它只是一个起点,您可以修改此代码并增强您的消息类型,并根据您的消息类型添加任意数量的div /按钮等。
答案 2 :(得分:0)
首先你应该研究一下Callisto及其CustomDialog(http://bit.ly/ILTyRn)。不幸的是,它仍然是一个密封的类,因此您可以使用其代码或为对话框类型定义AttachedProperty。除此之外你需要的只有3个不同的模板和一个正在检查DialogTypeProperty的TemplateSelector(你需要创建一个这样的属性 - AttachedProp f.e。)
希望指出你正确的方向。 :)
答案 3 :(得分:0)
还有一个使用here方法的示例实现Awaitable UI(使用async / await关键字等待UI事件)。