【WinUI 3】右クリックメニュー(ContextFlyout)の使い方を実例付きで解説!

2025-04-11
WinUI 3 ContextFlyoutのサンプル画像

WinUI 3 のアプリ開発で「右クリックメニュー(コンテキストメニュー)」を実装したい場合、WPF の ContextMenu ではなく ContextFlyout を使います。この記事では、具体的な実装例を交えて分かりやすく解説します。

ContextFlyout を使った Grid の右クリックメニュー例

以下のコードで、Grid 要素を右クリックしたときにメニューを表示することができます。

<Grid Width="200" Height="200" Background="BlueViolet" >
    <Grid.ContextFlyout>
        <MenuFlyout>
            <MenuFlyoutItem Text="右クリック メニュー1" />
            <MenuFlyoutItem Text="右クリック メニュー2" />
        </MenuFlyout>
    </Grid.ContextFlyout>
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">右クリック</TextBlock>
</Grid>

ポイント解説:

WPF との違いに注意!

WPF における ContextMenu と混同しがちですが、WinUI 3 では ContextFlyout + MenuFlyout の組み合わせが主流です。実装方法が異なるため、移行の際は注意が必要です。

まとめ

WinUI 3 での右クリックメニュー実装は非常にシンプルで、上記のようなコードで簡単に導入できます。UI に応じて、他のコントロール(TextBox, Button, ListView など)にも ContextFlyout は設定可能です。

この記事を参考に、自分のアプリにも応用してみてください!

WinUI 3 / XAML の Grid.Width 設定方法

WinUI 3でMenuFlyoutをShowAtで表示する方法【コード付き解説】

MenuFlyoutWinUI 3 で便利なポップアップメニュー

WinUI 3の開発で混乱しがちな「空白のウィンドウ」と「空白のページ」の違い

PowerShellでMSIXアプリ(Storeアプリ)を起動する方法|AppUserModelIdとURIスキーム活用術

Microsoft Storeアプリ更新時のロールアウト設定まとめ

Microsoft純正の新しいコンソールエディタ「edit」が復活!| edit.exe インストール方法

Microsoft Authenticatorのオートフィル機能が2025年7月に終了

RuntimeBroker.exeとMsEdgeWebView2.exeとは?Windows 11のプロセスについて

PowerShellでGrapheme Clusterについて処理を考える

【Windows】Volta コマンドライン インストール | Node.jsをバージョン管理する方法

【C#】大容量ファイルを指定サイズ以下に分割する方法|.NET8対応コード付き

【C# .NET 8】ファイルから重複行を削除する2つの方法|Distinct vs HashSet

【C#】.emlファイルの本文を読みやすく抽出する方法

WinUI 3 ComboBoxの自作クラスバインドと選択イベント検出方法

switch文でオブジェクトの型を判別する方法

【WPF】Task.Run中にUIを更新する方法

System.Text.Json 9.0.0.0 で FileNotFoundException

C#で改行・カンマ入りのCSVを正しく読み込む方法【.NET8対応】

C#/.NET 8でDateTimeを日本時間でISO 8601形式に変換する方法

Windows 11でタスクマネージャー以外からアプリを終了させる方法【PowerShell・コマンドプロンプト】

和暦設定でも安心!C#でISO 8601やカスタム日時文字列を確実にDateTimeに変換