概要
この記事では、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:
コメント