概要
この記事では、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>
Please follow and like us:

コメント