12,925
回編集
(→概要) |
(→使用例) |
||
164行目: | 164行目: | ||
// 選択されたファイルを処理 | // 選択されたファイルを処理 | ||
// ...略 | // ...略 | ||
} | |||
</syntaxhighlight> | |||
<br><br> | |||
== ファイル保存タイアログ == | |||
==== OpenFileDialogのプロパティ ==== | |||
<br> | |||
==== Filtersプロパティ (ファイルの種類) の設定 ==== | |||
<br> | |||
==== 使用例 ==== | |||
以下の例では、Avalonia UIを使用してファイル保存ダイアログを実装している。<br> | |||
<br> | |||
<syntaxhighlight lang="c#"> | |||
using Avalonia; | |||
using Avalonia.Controls; | |||
using Avalonia.Interactivity; | |||
using Avalonia.Markup.Xaml; | |||
using System; | |||
using System.IO; | |||
using System.Threading.Tasks; | |||
namespace AvaloniaFileSaveDialog | |||
{ | |||
public partial class MainWindow : Window | |||
{ | |||
public MainWindow() | |||
{ | |||
InitializeComponent(); | |||
} | |||
private void InitializeComponent() | |||
{ | |||
AvaloniaXamlLoader.Load(this); | |||
} | |||
// 保存ボタンを押下 | |||
public async void OnSaveButtonClicked(object sender, RoutedEventArgs e) | |||
{ | |||
try | |||
{ | |||
string content = "これはファイルの内容です"; // 保存する内容 | |||
string savedFilePath = await ShowSaveFileDialogAsync(); | |||
if (!string.IsNullOrEmpty(savedFilePath)) | |||
{ | |||
await SaveFileAsync(savedFilePath, content); | |||
Console.WriteLine("成功", $"ファイルを正常に保存: {savedFilePath}"); | |||
} | |||
} | |||
catch (Exception ex) | |||
{ | |||
Console.WriteLine("エラー", $"ファイルの保存中にエラーが発生: {ex.Message}"); | |||
} | |||
} | |||
// ファイル保存ダイアログを表示して、選択されたファイルパスを返す | |||
private async Task<string> ShowSaveFileDialogAsync() | |||
{ | |||
var saveFileDialog = new SaveFileDialog(); | |||
// ダイアログのタイトル | |||
saveFileDialog.Title = "ファイルを保存"; | |||
// .txtファイルのフィルタを追加 | |||
saveFileDialog.Filters.Add(new FileDialogFilter { Name = "テキストファイル", Extensions = { "txt" } }); | |||
string result = await saveFileDialog.ShowAsync(this); | |||
return result; | |||
} | |||
// 指定されたパスにファイルを非同期で保存 | |||
private async Task SaveFileAsync(string filePath, string content) | |||
{ | |||
await File.WriteAllTextAsync(filePath, content); | |||
} | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |