2013-02-26 72 views
0

我想爲消息對話框創建一個用戶控件,以便根據需要改變消息對話框的UI。例如,如果我通過標題,消息和類型,然後根據消息的類型它應該顯示消息對話框。 類型可以是:錯誤,警告,簡單的消息等。我該如何實現? 自定義消息對話框的用戶界面看起來應該如下當類型設置爲Error例如: enter image description here爲消息對話框創建用戶控件

回答

0

還有一個樣本實現here使用了Awaitable UI方法(使用異步/等待關鍵字來等待UI事件)。

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 /按鈕或任何基於你的消息類型。

+0

儘管我喜歡關於組合CSS類和類型的想法,但我相信問題是關於C#/ XAML而不是HTML/Javascript ...... 不過,聰明! :) – Gope 2013-02-26 12:31:38

+0

(doh)但他從來沒有提到XAML thingy,但標籤。無論如何,謝謝你喜歡這個主意(沉悶) – KMX 2013-02-28 05:58:28

0

首先你應該看看Callisto和它的CustomDialog(http://bit.ly/ILTyRn)。不幸的是,它仍然是一個密封的類,因此您可以使用其代碼或爲對話框類型定義AttachedProperty。除此之外,您還需要3種不同的模板和一個TemplateSelector,用於檢查DialogTypeProperty(您需要創建這樣一個屬性 - AttachedProp f.e.)

希望您能指出正確的方向。 :)

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

+0

還有一個[Nuget pack](http://www.nuget.org/packages/AsyncDialogs/)用於這個令人敬畏的對話!安裝包「AsyncDialogs」 – 2013-07-22 18:37:45