📢 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>


<br>
==== 使用例 ====
==== 使用例 ====
以下の例では、Avalonia UIを使用してファイル保存ダイアログを実装している。<br>
以下の例では、Avalonia UIを使用してファイル保存ダイアログを実装している。<br>