syncfusion-wpf-toast-notification について
WPF 向け SfToastNotification の実装ガイドです。Windows ネイティブ通知とアプリ内トーストを扱い、重要度、配置、グループ化、アクションを解説します。
主な機能
- 01ネイティブ、ウィンドウ、画面の表示モード
- 02重要度に応じたビジュアルスタイル
- 03自動クローズとアニメーション
- 04操作ボタン
- 05通知のグループ化と配置調整
活用シーン
- 01保存や処理の状態表示
- 02再試行や閉じる操作付きエラー通知
- 03WPF ウィンドウ内での通知整理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ syncfusion/ wpf-ui-components-skills --skill syncfusion-wpf-toast-notificationインストール後、Claude Code で/syncfusion-wpf-toast-notificationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/action-buttons.mdcustom-positioning.mdcustom-spacing.mddisplay-modes.mdgetting-started.mdplacement-and-animations.mdseverity-and-variants.mdtemplate-customization.mdtoast-grouping.md詳細
WPF でのトースト通知の実装
このスキルを使用するタイミング
次のようなニーズがある場合は、いつでもこのスキルを使用してください。
- WPF アプリケーションで一時的で、操作を妨げない通知を表示する
- ステータスメッセージ(保存成功、操作完了、エラーなど)を表示する
- タイムアウト後に自動的に閉じる通知アラートを実装する
- Windows OS のネイティブ通知またはアプリ内のカスタムトーストを作成する
- 重要度に応じたメッセージ(情報、成功、警告、エラー)を表示する
- 通知に操作ボタン(返信、元に戻す、OK)を追加する
- ユーザーのワークフローを妨げない一時的なフィードバックを表示する
- グローバル通知またはウィンドウ単位の通知を実装する
- 整理しやすいように、一意の Group ID を使用して関連する通知をグループ化する
- 柔軟に通知を配置できるよう、画面上の任意の位置にトーストを表示する
- 通知のレイアウトを調整できるよう、トースト間の間隔をカスタマイズする
コンポーネントの概要
SfToastNotification は、WPF アプリケーションにトースト通知を表示する非 UI コントロール(XAML は不要)です。次の 3 つの表示モードに対応しています。
- 既定モード: Windows OS のネイティブ通知(Windows 10 以降)
- ウィンドウモード: ウィンドウの境界内に表示するアプリ内通知
- 画面モード: 画面全体に表示するグローバルオーバーレイ通知
主な特徴:
- コードのみで実装可能(XAML マークアップは不要)
- トーストの表示と終了に使用できる静的 API
- 組み込みのビジュアルスタイルを備えた複数の重要度レベル
- アニメーション、配置、テンプレートをカスタマイズ可能
- コールバックに対応した操作ボタン
- テンプレートの完全なカスタマイズに対応
ドキュメントとナビゲーションガイド
リファレンスファイル
- getting-started.md: 基本設定、NuGet のインストール、ライフサイクル管理
- display-modes.md: 既定/ウィンドウ/画面モード、ブートストラッパーの設定、モードの比較
- severity-and-variants.md: 重要度レベル、ビジュアルバリアント、AccentBrush のカスタマイズ
- placement-and-animations.md: 8 種類の配置、アニメーションの種類、アニメーションのリファレンス
- action-buttons.md: 操作ボタン、コールバック、CloseOnClick、カスタムテンプレート
- template-customization.md: TitleTemplate、ContentTemplate、CloseButtonTemplate のカスタマイズ
- toast-grouping.md: Group ID によるトーストのグループ化、EnableGroupView、GroupContainerHeader のカスタマイズ
- custom-positioning.md: 画面上の任意の位置、X/Y 座標、HorizontalOffset/VerticalOffset プロパティ
- custom-spacing.md: トースト間の間隔のカスタマイズ、Spacing プロパティ
クイックスタートの例
基本的な情報トースト
using System.Windows;
using Syncfusion.UI.Xaml.SfToastNotification;
namespace ToastDemo
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ShowToast_Click(object sender, RoutedEventArgs e)
{
// Simple toast with title and message
SfToastNotification.Show(this, new ToastOptions
{
Mode = ToastMode.Screen,
Title = "Welcome",
Message = "Hello! This is your first toast notification."
});
}
}
}
操作ボタン付きのエラートースト
// Error toast with Retry and Dismiss actions
SfToastNotification.Show(this, new ToastOptions
{
Title = "Operation Failed",
Message = "Unable to save your changes. Please try again.",
Severity = ToastSeverity.Error,
Mode = ToastMode.Screen,
Actions = new List<ToastAction>
{
new ToastAction("Retry")
{
Callback = () => RetryOperation(),
CloseOnClick = true
},
new ToastAction("Dismiss")
{
CloseOnClick = true
}
}
});
よく使われるパターン
OS のネイティブ通知
起動時に WindowsToastBootstrapper.Initialize() を呼び出して初期化し、Mode = ToastMode.Default を設定します。
主なプロパティ
- Title: 上部の太字テキスト(文字列)
- Message: メインの本文テキスト(文字列)
- Mode: 表示モード — Default(ネイティブ OS)、Window、または Screen
- Severity: 視覚的な重要度 — None、Info、Success、Warning、Error
- Duration: 自動クローズまでの時間(デフォルト:6 秒)
- PreventAutoClose: 自動クローズを無効にするかどうか(bool)
- Placement: 画面上の位置(8 種類:TopLeft、TopCenter など)
- Variant: 視覚的なスタイル — Text、Outlined、Filled
- AccentBrush: カスタムのアクセントカラー(Brush)
- ShowAnimationType: 表示アニメーション(FadeIn、Zoom、Slide、Flip など)
- CloseAnimationType: 非表示アニメーション(FadeOut など)
- Actions: インタラクティブなアクションボタン(List)
- Id: 管理用の一意の識別子(文字列)
- GroupName: 関連する通知を整理するためのグループ ID(文字列)
- HorizontalOffset: 配置位置からの水平方向の調整値(double)
- VerticalOffset: 配置位置からの垂直方向の調整値(double)
- X: Custom 配置を使用する場合の、左端からの絶対的な水平位置(double)
- Y: Custom 配置を使用する場合の、上端からの絶対的な垂直位置(double)
- Spacing: 画面の隅に表示するトースト間のカスタム間隔(double)
- EnableGroupView: グループ化された通知の表示を有効にするかどうか(bool)
- GroupContainerHeader: グループ化された通知に表示するカスタムのヘッダーテキスト(文字列)
コメント
Markdown 対応