WPFは、ファイルを開いたり保存するためのダイアログを提供しています。以下の2つのダイアログがあります。
- SaveFileDialog:ファイルを保存するときに使用するダイアログです。
- OpenFileDialog:ファイルを開くときに使用するダイアログです。
これらのダイアログは、主に以下のような流れで使用します。
- インスタンスを生成する。
- Titleプロパティと、Filterプロパティを設定する。
- ShowDialogを呼び出してダイアログを表示する。
- ダイアログの戻り値を確認してOKが押されている場合は、FileNameプロパティかFileNamesプロパティを使用して選択されたファイルを取得する。
プロパティの説明を以下に示します。
プロパティ | 説明 |
---|---|
public string Title { get; set; } | ファイルダイアログのタイトルに表示されるテキストを取得または設定します。 |
public string Filter { get; set; } | ファイルダイアログで選択できるファイルの種類を示すフィルターを取得または設定します。 |
public string FileName { get; set; } | ファイルダイアログで選択されたファイルのフルパスを取得または設定します。 |
public string[] FileNames { get; } | ファイルダイアログで選択されたすべてのファイルのフルパスを取得します。 |
Filterプロパティの書式について詳しく説明します。Filterプロパティは以下のような書式で指定します。
全てのファイル|*.*|ワードファイル|*.doc;*.docx
表示用のラベルと対象の拡張子を|で区切って記述します。対象の拡張子が複数ある場合は;で区切って指定します。上記の記述では、全てのの拡張子を対象とした全てのファイルと、docとdocxという拡張子を対象としたワードファイルという選択肢がファイルダイアログに表示されます。
次に、ShowDialogメソッドについて説明します。
メソッド | 説明 |
---|---|
public Nullable | ファイルダイアログを表示します。OKが選択された場合は、trueを返して、それ以外の場合はfalseを返します。 |
以下に、OpenFileDialogとSaveFileDialogの使用例を示します。
画面は、ButtonコントロールとTextBlockコントロールを並べたシンプルなものです。
<StackPanel><StackPanel Orientation="Horizontal"><Button Content="FileOpen"Click="FileOpenButton_Click" /><Button Content="FileSave"Click="FileSaveButton_Click" /></StackPanel><TextBlock x:Name="textBlockFileName" /></StackPanel>
コードビハインドの、Buttonのクリックイベントでダイアログを表示してファイル名を画面に表示しています。
privatevoid FileOpenButton_Click(object sender, RoutedEventArgs e) { var dialog = new OpenFileDialog(); dialog.Title = "ファイルを開く"; dialog.Filter = "全てのファイル(*.*)|*.*"; if (dialog.ShowDialog() == true) { this.textBlockFileName.Text = dialog.FileName; } else { this.textBlockFileName.Text = "キャンセルされました"; } } privatevoid FileSaveButton_Click(object sender, RoutedEventArgs e) { var dialog = new SaveFileDialog(); dialog.Title = "ファイルを保存"; dialog.Filter = "テキストファイル|*.txt"; if (dialog.ShowDialog() == true) { this.textBlockFileName.Text = dialog.FileName; } else { this.textBlockFileName.Text = "キャンセルされました"; } }
実行してボタンを押すと、以下のようにダイアログが表示されます。
ファイルを選択するとTextBlockに選択したファイルのフルパスが表示されます。
過去記事
- WPF4.5入門 その1 「はじめに」
- WPF4.5入門 その2 「WPFとは」
- WPF4.5入門 その3 「Hello world」
- WPF4.5入門 その4 「Mainメソッドはどこにいった?」
- WPF4.5入門 その5 「全てC#でHello world」
- WPF4.5入門 その6 「WPFを構成するものを考えてみる」
- WPF4.5入門 その7 「XAMLのオブジェクト要素と名前空間」
- WPF4.5入門 その8 「オブジェクト要素のプロパティ」
- WPF4.5入門 その9 「コレクション構文」
- WPF4.5入門 その10 「コンテンツ構文」
- WPF4.5入門 その11 「マークアップ拡張」
- WPF4.5入門 その12 「その他のXAMLの機能」
- WPF4.5入門 その13 「簡単なレイアウトを行うコントロール」
- WPF4.5入門 その14 「レイアウトコントロールのCanvasとStackPanel」
- WPF4.5入門 その15 「レイアウトコントロールのDockPanelとWrapPanel」
- WPF4.5入門 その16 「ViewBoxコントロール」
- WPF4.5入門 その17 「ScrollViewerコントロール」
- WPF4.5入門 その18 「Gridコントロール part 1」
- WPF4.5入門 その19 「Gridコントロール part 2」
- WPF4.5入門 その20 「レイアウトに影響を与えるプロパティ」
- WPF4.5入門 その21 「WPFのコンセプトと重要な機能つまみ食い」
- WPF4.5入門 その22 「Buttonコントロール」
- WPF4.5入門 その23 「DataGridコントロール その1」
- WPF4.5入門 その24 「DataGridコントロール その2」
- WPF4.5入門 その25 「TreeViewコントロール その1」
- WPF4.5入門 その26 「TreeViewコントロール その2」
- WPF4.5入門 その28 「Calendarコントロール」 - かずきのBlog@hatena
- WPF4.5入門 その29 「ContextMenuコントロール」 - かずきのBlog@hatena
- WPF4.5入門 その30「Menuコントロール」 - かずきのBlog@hatena
- WPF4.5入門 その31 「ToolBarコントロール」 - かずきのBlog@hatena
- WPF4.5入門 その32 「CheckBoxコントロール」 - かずきのBlog@hatena
- WPF4.5入門 その33 「ComboBoxコントロール」 - かずきのBlog@hatena
- WPF4.5入門 その34 「ListBoxコントロール」 - かずきのBlog@hatena
- WPF4.5入門 その35 「RadioButtonコントロール」 - かずきのBlog@hatena
- WPF4.5入門 その36 「Sliderコントロール」 - かずきのBlog@hatena
- WPF4.5入門 その37 「TabControl」 - かずきのBlog@hatena