2011-01-04 4 views
2

WPFアプリケーションでは、ユーザから1行の情報を取得する必要があり、モーダルダイアログを使用することはできません。しかし、このためのプリセットダイアログがないようです。これを行う簡単で簡単な方法は何ですか?私は、ダイアログのような多くのバージョンでこれを見つけようと思っているのですWPF:モーダルダイアログボックス/ InputDialogでユーザを照会

すでにOpenFileDialogとSaveFileDialogを使用していました。これらのバージョンとMicrosoft.Win32とSystem.Windows.Formの違いは何ですか?

答えて

7

WPFでモーダルダイアログを表示するために必要なことは何もありません。ちょうど(のは、クラス名がMyDialogあるとしましょう)プロジェクトにWindowを追加し、実行します。

var dialog = new MyDialog(); 
dialog.ShowDialog(); 

Window.ShowDialogはモーダルな方法でウィンドウを示すの世話をします。

例:どこかにあなたのコードで

public class MyDialog : Window { 
    public MyDialog() { 
     this.InitializeComponent(); 
     this.DialogResult = null; 
    } 

    public string SomeData { get; set; } // bind this to a control in XAML 
    public int SomeOtherData { get; set; } // same for this 

    // Attach this to the click event of your "OK" button 
    private void OnOKButtonClicked(object sender, RoutedEventArgs e) { 
     this.DialogResult = true; 
     this.Close(); 
    } 

    // Attach this to the click event of your "Cancel" button 
    private void OnCancelButtonClicked(object sender, RoutedEventArgs e) { 
     this.DialogResult = false; 
     this.Close(); 
    } 
} 

var dialog = new MyDialog(); 
// If MyDialog has properties that affect its behavior, set them here 
var result = dialog.ShowDialog(); 

if (result == false) { 
    // cancelled 
} 
else if (result == true) { 
    // do something with dialog.SomeData here 
} 
+0

すべてが順調に良いとどのようにあなたがinputDialogを定義するか、あなたは何を継承し、そのようなのですか? –

+0

@Ingo:あなたは 'Window'から継承します。特別なことは何もありません。 – Jon

+0

私は参照してください。どのチュートリアルでも、ShowDialogメソッドでBoolを返す方法と、入力にアクセスする方法などを教えていただけますか? –

関連する問題