要件に応じてメッセージダイアログのUIが変わるように、メッセージダイアログボックスのユーザーコントロールを作成したいと思います。たとえば、タイトル、メッセージ、タイプを渡すと、メッセージのタイプに応じて、そのメッセージダイアログが表示されます。タイプには、エラー、警告、単純なメッセージなどがあります。これを実現するにはどうすればよいですか。タイプがエラー例として設定されている場合、カスタムメッセージダイアログのUIは次のようになります。
4 に答える
これはあなたが思っているよりも驚くほど達成するのが難しいです。課題は、ダイアログが非同期のままであることを確認し、ビジュアルツリーに表示することにあります。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
ああ、あなたはたくさん尋ねています!
:)
さて、このようにしてください、私はあなたを導き、あなたはあなたの役割を果たします:
クラス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/buttonsなどを強化します。
まず、CallistoとそのCustomDialog( http://bit.ly/ILTyRn )を調べる必要があります。残念ながら、それはまだ封印されたクラスであるため、そのコードを使用するか、ダイアログタイプのAttachedPropertyを定義することができます。それ以外に必要なのは、3つの異なるテンプレートとDialogTypePropertyをチェックするTemplateSelectorです(このようなプロパティを作成する必要があります-AttachedProp fe)
それがあなたを正しい方向に向けることを願っています。:)
ここには、Awaitable UIアプローチを使用するサンプル実装もあります(async / awaitキーワードを使用してUIイベントを待機します)。