Wpf-menu
WPF-メニュー
メニューは、コマンドおよびイベントハンドラーに関連付けられた要素を階層的に整理できるコントロールです。 メニューはItemsControlであるため、文字列、画像、パネルなどの任意のオブジェクトタイプのコレクションを含めることができます。 メニュークラスの階層的な継承は次のとおりです-
以下は、Menuクラスで一般的に使用されるプロパティです
以下に、Menuの最も一般的に使用されるプロパティを示します。
Sr.No. | Property & Description |
---|---|
1 |
Background コントロールの背景を記述するブラシを取得または設定します。 (Controlから継承されます。) |
2 |
BindingGroup 要素に使用されるBindingGroupを取得または設定します。 (FrameworkElementから継承されます。) |
3 |
BitmapEffect 廃止されました。 この要素のレンダリングされたコンテンツに直接適用されるビットマップ効果を取得または設定します。 これは依存関係プロパティです。 (UIElementから継承されます。) |
4 |
BorderThickness コントロールの境界線の太さを取得または設定します。 (Controlから継承されます。) |
5 |
ContextMenu この要素内からユーザーインターフェイス(UI)を介してコンテキストメニューが要求されるたびに表示されるコンテキストメニュー要素を取得または設定します。 (FrameworkElementから継承されます。) |
6 |
Effect UIElementに適用するビットマップ効果を取得または設定します。 これは依存関係プロパティです。 (UIElementから継承されます。) |
7 |
Height 要素の推奨される高さを取得または設定します。 (FrameworkElementから継承されます。) |
8 |
IsMainMenu このメニューがメインメニューのアクティブ化通知を受信するかどうかを示す値を取得または設定します。 |
9 |
Items ItemsControlのコンテンツの生成に使用されるコレクションを取得します。 (ItemsControlから継承されます。) |
10 |
ItemsPanel アイテムのレイアウトを制御するパネルを定義するテンプレートを取得または設定します。 (ItemsControlから継承されます。) |
11 |
ItemsSource ItemsControlのコンテンツの生成に使用されるコレクションを取得または設定します。 (ItemsControlから継承されます。) |
12 |
ItemStringFormat アイテムが文字列として表示される場合、ItemsControlでアイテムをフォーマットする方法を指定する複合文字列を取得または設定します。 (ItemsControlから継承されます。) |
13 |
ItemTemplate 各項目の表示に使用されるDataTemplateを取得または設定します。 (ItemsControlから継承されます。) |
14 |
ToolTip ユーザーインターフェイス(UI)でこの要素に対して表示されるツールヒントオブジェクトを取得または設定します。 (FrameworkElementから継承されます。) |
15 |
VerticalContentAlignment コントロールのコンテンツの垂直方向の配置を取得または設定します。 (Controlから継承されます。) |
16 |
Width 要素の幅を取得または設定します。 (FrameworkElementから継承されます。) |
メニュークラスで一般的に使用されるイベント
以下に、Menuの最も一般的に使用されるイベントを示します。
Sr.No. | Event & Description |
---|---|
1 |
ContextMenuClosing 要素のコンテキストメニューが閉じられる直前に発生します。 (FrameworkElementから継承されます。) |
2 |
ContextMenuOpening 要素のコンテキストメニューが開かれたときに発生します。 (FrameworkElementから継承されます。) |
3 |
KeyDown この要素にフォーカスがあるときにキーが押されると発生します。 (UIElementから継承されます。) |
4 |
KeyUP この要素にフォーカスがあるときにキーが離されると発生します。 (UIElementから継承されます。) |
5 |
ToolTipClosing 要素のツールチップが閉じられる直前に発生します。 (FrameworkElementから継承されます。) |
6 |
ToolTipOpening 要素のツールチップが開かれたときに発生します。 (FrameworkElementから継承されます。) |
7 |
TouchDown 指がこの要素上にあるときに指が画面に触れると発生します。 (UIElementから継承されます。) |
8 |
TouchEnter この要素の境界の外側から内側にタッチが移動すると発生します。 (UIElementから継承されます。) |
9 |
TouchLeave この要素の境界の内側から外側にタッチが移動すると発生します。 (UIElementから継承されます。) |
10 |
TouchMove 指がこの要素上にあるときに指が画面上を移動すると発生します。 (UIElementから継承されます。) |
11 |
TouchUp 指がこの要素上にあるときに指が画面から離れると発生します。 (UIElementから継承されます。) |
例
- WPFMenuControl という名前の新しいWPFプロジェクトを作成しましょう。
- ツールボックスからデザインウィンドウにメニューコントロールをドラッグします。
- 次の例には、いくつかのメニュー項目を持つ3つのメニューオプションが含まれています。 ユーザーがアイテムをクリックすると、プログラムはタイトルを更新します。 ここにXAMLコードがあります-
<Window x:Class = "WPFMenuControl.MainWindow"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local = "clr-namespace:WPFMenuControl"
mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604">
<Grid>
<Menu HorizontalAlignment = "Left" VerticalAlignment = "Top" Width = "517">
<MenuItem Header = "File">
<MenuItem Header = "Item 1" HorizontalAlignment = "Left" Width = "140"
Click = "MenuItem_Click"/>
<MenuItem Header = "Item 2" HorizontalAlignment = "Left" Width = "140"
Click = "MenuItem_Click"/>
<Separator HorizontalAlignment = "Left" Width = "140"/>
<MenuItem Header = "Item 3" HorizontalAlignment = "Left" Width = "140"
Click = "MenuItem_Click"/>
</MenuItem>
<MenuItem Header = "Edit">
<MenuItem Header = "Item 1" HorizontalAlignment = "Left" Width = "140"
Click = "MenuItem_Click1"/>
<MenuItem Header = "Item 2" HorizontalAlignment = "Left" Width = "140"
Click = "MenuItem_Click1"/>
<Separator HorizontalAlignment = "Left" Width = "140"/>
<MenuItem Header = "Item 3" HorizontalAlignment = "Left" Width = "140"
Click = "MenuItem_Click1"/>
</MenuItem>
<MenuItem Header = "View">
<MenuItem Header = "Item 1" HorizontalAlignment = "Left" Width = "140"
Click = "MenuItem_Click2"/>
<MenuItem Header = "Item 2" HorizontalAlignment = "Left" Width = "140"
Click = "MenuItem_Click2"/>
<Separator HorizontalAlignment = "Left" Width = "140"/>
<MenuItem Header = "Item 3" HorizontalAlignment = "Left" Width = "140"
Click = "MenuItem_Click2"/>
</MenuItem>
</Menu>
</Grid>
</Window>
イベントは次のとおりです。* C#での実装*。
using System.Windows;
using System.Windows.Controls;
namespace WPFMenuControl {
///<summary>
///Interaction logic for MainWindow.xaml
///</summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void MenuItem_Click(object sender, RoutedEventArgs e) {
MenuItem item = sender as MenuItem;
this.Title = "File: " + item.Header;
}
private void MenuItem_Click1(object sender, RoutedEventArgs e) {
MenuItem item = sender as MenuItem;
this.Title = "Edit: " + item.Header;
}
private void MenuItem_Click2(object sender, RoutedEventArgs e) {
MenuItem item = sender as MenuItem;
this.Title = "View: " + item.Header;
}
}
}
上記のコードをコンパイルして実行すると、次の出力が生成されます-
上記のサンプルコードを実行し、Menuクラスの他のプロパティとイベントを試すことをお勧めします。