「Avalonia UI - ダイアログ」の版間の差分

ナビゲーションに移動 検索に移動
303行目: 303行目:
<br><br>
<br><br>


== ファイル保存タイアログ ==
== ファイル保存タイアログ (SaveFileDialogクラス) ==
==== SaveFileDialogのプロパティ ====
==== SaveFileDialogのプロパティ ====
下表に、ファイル選択ダイアログのプロパティのうち、設定を意識する必要がある主なプロパティを示す。<br>
下表に、ファイル選択ダイアログのプロパティのうち、設定を意識する必要がある主なプロパティを示す。<br>
350行目: 350行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== Filtersプロパティ (ファイルの種類) の設定 ====
==== Filtersプロパティ (ファイルの種類) の設定 ====
ダイアログで開くことができるファイルの種類は、<code>Filters</code>プロパティにフィルタ文字列を設定する。<br>
ダイアログで開くことができるファイルの種類は、<code>Filters</code>プロパティにフィルタ文字列を設定する。<br>
419行目: 418行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== 使用例 ====
==== 使用例 ====
以下の例では、Avalonia UIを使用してファイル保存ダイアログを実装している。<br>
以下の例では、Avalonia UIを使用してファイル保存ダイアログを実装している。<br>
489行目: 487行目:
  }
  }
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
== ディレクトリ選択タイアログ (StorageProviderクラス) ==
==== StorageProviderクラスのプロパティ ====
下表に、ファイル選択ダイアログのプロパティのうち、設定を意識する必要がある主なプロパティを示す。<br>
<br>
<center>表. StorageProviderクラスの主なプロパティ<br>
{| class="wikitable" style="background-color:#fefefe;"
|-
! style="background-color:#00ffff;" | プロパティ名
! style="background-color:#00ffff;" | データ型
! style="background-color:#00ffff;" | 意味
|-
| AllowMultiple || bool || 複数のアイテムの選択を許可するかどうかを指定する。<br>複数のアイテムを選択する場合 : true<br>単一のファイルのみの場合 : false (既定値 : false)
|-
| FileTypeFilter || IReadOnlyList<FilePickerFileType>型 || <code>FilePickerOpenOptions</code>等のオプションクラスのプロパティとして使用する。<br>選択可能なファイルタイプを制限するためのフィルタのリストを指定する。
|-
| SuggestedStartLocation || IStorageFolder型 || ファイルピッカーやフォルダピッカーが開く初期ディレクトリを指定する。<br><code>FilePickerOpenOptions</code>や<code>FolderPickerOpenOptions</code>等のオプションクラスのプロパティとして使用する。<br><br>未指定または<code>null</code>を指定した場合、ファイルピッカーやフォルダピッカーは、システムやアプリケーションのデフォルトの開始位置を使用する。<br>多くの場合、ユーザのドキュメントディレクトリ、または、最後にファイルピッカーを使用した場所になる。
|-
| Title || string || ファイル選択ダイアログのウインドウタイトルを指定する。
|}
</center>
<br>
以下の例では、FilePickerOpenOptionsクラスを使用してstorageProviderクラスを設定した後、ディレクトリ選択ダイアログを開いている。<br>
SuggestedStartLocationやFileTypeFilterは、StorageProviderクラスの直接のプロパティではないことに注意する。<br>
<syntaxhighlight lang="c#">
using Avalonia.Platform.Storage;
using System.IO;
using System.Threading.Tasks;
public class MyClass
{
    public async Task OpenDirectoryAsync()
    {
      var storageProvider = TopLevel.GetTopLevel(this)?.StorageProvider;
      if (storageProvider != null)
      {
          var options = new FolderPickerOpenOptions
          {
            SuggestedStartLocation = await storageProvider.TryGetFolderFromPathAsync("/usr/local/bin"),
            AllowMultiple = false
          };
          var folders = await storageProvider.OpenFolderPickerAsync(options);
          if (folders.Count > 0)
          {
            var selectedFolder = folders[0];
            // 選択されたディレクトリに対する処理
            // 例: ディレクトリのパスを取得
            var path = await selectedFolder.GetPathAsync();
            System.Diagnostics.Debug.WriteLine($"選択ディレクトリ: {path}");
          }
      }
    }
}
</syntaxhighlight>
<br>
==== Filtersプロパティ (ファイルの種類) の設定 ====
<br>
==== 使用例 ====
<br><br>
<br><br>


案内メニュー