[WPF][MenuItem] メニューアイテムにマウスオーバーしたときにカーソルを変更する方法

スポンサーリンク

概要

この記事では、WPFのMenuItemコントロールのCursorプロパティを使用して、メニューアイテムにマウスオーバーしたときにカーソルを変更する方法について説明します。Cursorプロパティは、System.Windows.Input.Cursor型の依存関係プロパティで、XAMLやコードビハインドから設定できます。カーソルの種類は、System.Windows.Input.Cursorsクラスの静的フィールドで指定できます。

構文

XAMLでCursorプロパティを設定する場合は、以下のように記述します。

<MenuItem Header="File" Cursor="Hand">
  <MenuItem Header="Open" />
  <MenuItem Header="Save" />
  <MenuItem Header="Exit" />
</MenuItem>

コードビハインドでCursorプロパティを設定する場合は、以下のように記述します。

using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;

namespace WpfApp1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            MenuItem fileMenu = new MenuItem();
            fileMenu.Header = "File";
            fileMenu.Cursor = Cursors.Hand; // カーソルを手形に設定
            MenuItem openMenu = new MenuItem();
            openMenu.Header = "Open";
            MenuItem saveMenu = new MenuItem();
            saveMenu.Header = "Save";
            MenuItem exitMenu = new MenuItem();
            exitMenu.Header = "Exit";
            fileMenu.Items.Add(openMenu);
            fileMenu.Items.Add(saveMenu);
            fileMenu.Items.Add(exitMenu);
            menu.Items.Add(fileMenu); // menuはXAMLで定義したMenuコントロールの名前
        }
    }
}

使用例

以下の例では、XAMLで、メニューアイテムのカーソルを変更する方法を示します。メニューにはFileとEditという二つのメニューアイテムがあります。FileメニューはXAMLでCursorプロパティをHandに設定しています。実行すると、Fileメニューにマウスオーバーするとカーソルが手形になります。

XAMLの例は以下の通りです。

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Menu x:Name="menu" HorizontalAlignment="Left" Height="20" VerticalAlignment="Top" Width="800">
            <MenuItem x:Name="fileMenu" Header="File" Cursor="Hand">
                <MenuItem x:Name="openMenu" Header="Open" />
                <MenuItem x:Name="saveMenu" Header="Save" />
                <MenuItem x:Name="exitMenu" Header="Exit" />
            </MenuItem>
            <MenuItem x:Name="editMenu" Header="Edit">
                <MenuItem x:Name="cutMenu" Header="Cut" />
                <MenuItem x:Name="copyMenu" Header="Copy" />
                <MenuItem x:Name="pasteMenu" Header="Paste" />
            </MenuItem>
        </Menu>
    </Grid>
</Window&gt
Please follow and like us:

コメント

タイトルとURLをコピーしました