本TipsはWPFのみとなります。あらかじめご了承ください。
メニューにアイコンを設定するには MenuItemクラスのIconプロパティを使用します。
IconプロパティにはImageクラスのインスタンスを設定します。
下記はメニュー項目にアイコンを設定する例です。
XAMLの例
<DockPanel Name="Dock1"> <Menu DockPanel.Dock="Top"> <MenuItem Header="ファイル(_F)" Name="MenuItem1"> <MenuItem Command="New"> <MenuItem.Icon> <Image Source="Images/NewDocument.png" Width="16" Height="16" /> </MenuItem.Icon> </MenuItem> <MenuItem Command="Save"> <MenuItem.Icon> <Image Source="Images/Save.png" Width="16" Height="16" /> </MenuItem.Icon> </MenuItem> <Separator /> <MenuItem Command="Close" /> </MenuItem> <MenuItem Header="編集(_E)"> <MenuItem Command="Cut"> <MenuItem.Icon> <Image Source="Images/Cut.png" Width="16" Height="16" /> </MenuItem.Icon> </MenuItem> <MenuItem Command="Copy"> <MenuItem.Icon> <Image Source="Images/Copy.png" Width="16" Height="16" /> </MenuItem.Icon> </MenuItem> <MenuItem Command="Paste"> <MenuItem.Icon> <Image Source="Images/Paste.png" Width="16" Height="16" /> </MenuItem.Icon> </MenuItem> </MenuItem> </Menu> <TextBox Name="TextBox1" TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Visible" /> </DockPanel>
VBの例
'XAMLではなくコードでメニューを作成する場合は下記のようにします Dim mainMenu As New Controls.Menu Dim menuFile As New MenuItem() Dim menuFileNew As New MenuItem() Dim menuFileSave As New MenuItem() Dim menuFileEnd As New MenuItem Dim menuEdit As New MenuItem Dim menuEditCopy As New MenuItem Dim menuEditCut As New MenuItem Dim menuEditPaste As New MenuItem Dim menuEditSearchReplace As New MenuItem Dim menuEditSearch As New MenuItem Dim menuEditReplace As New MenuItem mainMenu.VerticalAlignment = VerticalAlignment.Top '[ファイル]メニュー項目の作成 menuFile.Header = "ファイル" menuFileNew.Command = ApplicationCommands.[New] menuFileSave.Command = ApplicationCommands.Save menuFileEnd.Command = ApplicationCommands.Close '[ファイル]メニューに[新規作成][保存][終了]項目を追加 menuFile.Items.Add(menuFileNew) menuFile.Items.Add(menuFileSave) menuFile.Items.Add(menuFileEnd) '[新規作成]メニューのアイコンを設定 Dim iconNew As New Image() iconNew.Source = New BitmapImage(New Uri("Images/NewDocument.png", UriKind.Relative)) iconNew.Width = 16 : iconNew.Height = 16 menuFileNew.Icon = iconNew '[保存]メニューのアイコンを設定 Dim iconSave As New Image() iconSave.Source = New BitmapImage(New Uri("Images/Save.png", UriKind.Relative)) iconSave.Width = 16 : iconSave.Height = 16 menuFileSave.Icon = iconSave '[編集]メニュー項目の作成 menuEdit.Header = "編集" menuEditCut.Command = ApplicationCommands.Cut menuEditCopy.Command = ApplicationCommands.Copy menuEditPaste.Command = ApplicationCommands.Paste '[編集]メニューに[切り取り][コピー][貼り付け][検索と置換]項目を追加 menuEdit.Items.Add(menuEditCut) menuEdit.Items.Add(menuEditCopy) menuEdit.Items.Add(menuEditPaste) '[切り取り]メニューのアイコンを設定 Dim iconCut As New Image() iconCut.Source = New BitmapImage(New Uri("Images/Cut.png", UriKind.Relative)) iconCut.Width = 16 : iconSave.Height = 16 menuEditCut.Icon = iconCut '[コピー]]メニューのアイコンを設定 Dim iconCopy As New Image() iconCopy.Source = New BitmapImage(New Uri("Images/Copy.png", UriKind.Relative)) iconCopy.Width = 16 : iconCopy.Height = 16 menuEditCopy.Icon = iconCopy '[貼り付け]メニューのアイコンを設定 Dim iconPaste As New Image() iconPaste.Source = New BitmapImage(New Uri("Images/Paste.png", UriKind.Relative)) iconPaste.Width = 16 : iconPaste.Height = 16 menuEditPaste.Icon = iconPaste 'メインメニューに[ファイル]メニューを追加 mainMenu.Items.Add(menuFile) 'メインメニューに[編集]メニューを追加 mainMenu.Items.Add(menuEdit) Me.Dock1.Children.Add(mainMenu)
C#の例
// XAMLではなくコードでメニューを作成する場合は下記のようにします System.Windows.Controls.Menu mainMenu = new System.Windows.Controls.Menu(); MenuItem menuFile = new MenuItem(); MenuItem menuFileNew = new MenuItem(); MenuItem menuFileSave = new MenuItem(); MenuItem menuFileEnd = new MenuItem(); MenuItem menuEdit = new MenuItem(); MenuItem menuEditCopy = new MenuItem(); MenuItem menuEditCut = new MenuItem(); MenuItem menuEditPaste = new MenuItem(); mainMenu.VerticalAlignment = VerticalAlignment.Top; // [ファイル]メニュー項目の作成 menuFile.Header = "ファイル"; menuFileNew.Command = ApplicationCommands.New; menuFileSave.Command = ApplicationCommands.Save; menuFileEnd.Command = ApplicationCommands.Close; // [ファイル]メニューに[新規作成][保存][終了]項目を追加 menuFile.Items.Add(menuFileNew); menuFile.Items.Add(menuFileSave); menuFile.Items.Add(menuFileEnd); // [新規作成]メニューのアイコンを設定 Image iconNew = new Image(); iconNew.Source = new BitmapImage(new Uri("Images/NewDocument.png", UriKind.Relative)); iconNew.Width = 16; iconNew.Height = 16; menuFileNew.Icon = iconNew; // [保存]メニューのアイコンを設定 Image iconSave = new Image(); iconSave.Source = new BitmapImage(new Uri("Images/Save.png", UriKind.Relative)); iconSave.Width = 16; iconSave.Height = 16; menuFileSave.Icon = iconSave; // [編集]メニュー項目の作成 menuEdit.Header = "編集"; menuEditCut.Command = ApplicationCommands.Cut; menuEditCopy.Command = ApplicationCommands.Copy; menuEditPaste.Command = ApplicationCommands.Paste; // [編集]メニューに[切り取り][コピー][貼り付け]項目を追加 menuEdit.Items.Add(menuEditCut); menuEdit.Items.Add(menuEditCopy); menuEdit.Items.Add(menuEditPaste); // [切り取り]メニューのアイコンを設定 Image iconCut = new Image(); iconCut.Source = new BitmapImage(new Uri("Images/Cut.png", UriKind.Relative)); iconCut.Width = 16; iconSave.Height = 16; menuEditCut.Icon = iconCut; // [コピー]]メニューのアイコンを設定 Image iconCopy = new Image(); iconCopy.Source = new BitmapImage(new Uri("Images/Copy.png", UriKind.Relative)); iconCopy.Width = 16; iconCopy.Height = 16; menuEditCopy.Icon = iconCopy; // [貼り付け]メニューのアイコンを設定 Image iconPaste = new Image(); iconPaste.Source = new BitmapImage(new Uri("Images/Paste.png", UriKind.Relative)); iconPaste.Width = 16; iconPaste.Height = 16; menuEditPaste.Icon = iconPaste; // メインメニューに[ファイル]メニューを追加 mainMenu.Items.Add(menuFile); // メインメニューに[編集]メニューを追加 mainMenu.Items.Add(menuEdit); this.Dock1.Children.Add(mainMenu);