📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 174行目: | 174行目: | ||
==== Filtersプロパティ (ファイルの種類) の設定 ==== | ==== Filtersプロパティ (ファイルの種類) の設定 ==== | ||
ダイアログで開くことができるファイルの種類は、<code>Filters</code>プロパティにフィルタ文字列を設定する。<br> | |||
<br> | |||
フィルタ文字列の設定を以下に示す。<br> | |||
* FileDialogFilterクラスの使用 | |||
*: 各フィルタはFileDialogFilterオブジェクトとして定義される。 | |||
* Nameプロパティ | |||
*: ユーザに表示されるフィルタの名前。 | |||
* Extensionsプロパティ | |||
*: 拡張子のリストであり、ワイルドカード (*) を含めずに指定する。 | |||
* 複数の拡張子 | |||
*: 1つのフィルタに複数の拡張子を含めることができる。 | |||
* 全てのファイル | |||
*: 全てのファイルを表す場合は、拡張子として <code>"*"</code> を使用する。 | |||
* フィルタの順序 | |||
*: リストに追加した順序でユーザに表示される。 | |||
<br> | |||
WinFormsとの主な違いを、以下に示す。<br> | |||
* Avalonia UIでは、拡張子にワイルドカード (*) を含めずに、単に拡張子名のみを指定する。 | |||
* 複数の拡張子やファイルタイプを1つのフィルタにまとめる場合、<code>Extensions</code>リストに全ての拡張子を追加する。 | |||
* フィルタ間の区切り (<code>|</code>) は使用せず、代わりに別の<code>FileDialogFilter</code>オブジェクトを作成する。 | |||
<br> | |||
<syntaxhighlight lang="c#"> | |||
using Avalonia.Controls; | |||
using System.Collections.Generic; | |||
public class FileDialogExample | |||
{ | |||
public void ShowFileDialog() | |||
{ | |||
var dialog = new SaveFileDialog(); | |||
// Filtersプロパティの設定方法 1 | |||
// List<FileDialogFilter>の使用 | |||
dialog.Filters = new List<FileDialogFilter> | |||
{ | |||
new FileDialogFilter { Name = "すべてのファイル", Extensions = new List<string> { "*" } }, | |||
new FileDialogFilter { Name = "テキストファイル", Extensions = new List<string> { "txt" } }, | |||
new FileDialogFilter { Name = "テキストファイルとすべてのファイル", Extensions = new List<string> { "txt", "*" } }, | |||
new FileDialogFilter { Name = "XMLファイル", Extensions = new List<string> { "xml" } }, | |||
new FileDialogFilter { Name = "HTMLファイル", Extensions = new List<string> { "html", "htm" } }, | |||
new FileDialogFilter { Name = "XMLファイルとHTMLファイルとすべてのファイル", Extensions = new List<string> { "xml", "html", "htm", "*" } }, | |||
new FileDialogFilter { Name = "イメージファイル", Extensions = new List<string> { "png", "jpg", "gif", "bmp" } } | |||
}; | |||
// Filtersプロパティの設定方法 2 | |||
// FiltersのAddメソッドの使用 | |||
dialog.Filters.Add(new FileDialogFilter { Name = "すべてのファイル", Extensions = { "*" } }); | |||
dialog.Filters.Add(new FileDialogFilter { Name = "テキストファイル", Extensions = { "txt" } }); | |||
dialog.Filters.Add(new FileDialogFilter { Name = "テキストファイルとすべてのファイル", Extensions = new List<string> { "txt", "*" } }); | |||
dialog.Filters.Add(new FileDialogFilter { Name = "XMLファイル", Extensions = { "xml" } }); | |||
dialog.Filters.Add(new FileDialogFilter { Name = "HTMLファイル", Extensions = new List<string> { "html", "htm" } }); | |||
dialog.Filters.Add(new FileDialogFilter { Name = "XMLファイルとHTMLファイルとすべてのファイル", Extensions = new List<string> { "xml", "html", "htm", "*" } }); | |||
dialog.Filters.Add(new FileDialogFilter { Name = "イメージファイル", Extensions = new List<string> { "png", "jpg", "gif", "bmp" } }); | |||
// ファイル選択ダイアログを表示 | |||
var result = await dialog.ShowAsync(this); | |||
if (result != null) | |||
{ | |||
foreach (var path in result) | |||
{ | |||
System.Console.WriteLine($"Selected file: {path}"); | |||
} | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
==== 使用例 ==== | ==== 使用例 ==== | ||
以下の例では、Avalonia UIを使用してファイル保存ダイアログを実装している。<br> | 以下の例では、Avalonia UIを使用してファイル保存ダイアログを実装している。<br> | ||