WPF - 選單



選單是一個控制元件,它使您能夠分層組織與命令和事件處理程式關聯的元素。選單是一個 ItemsControl,因此它可以包含任何物件型別的集合,例如字串、影像或面板。Menu 類的層次繼承如下:

Hierarchical of Menu

以下是 Menu 類中常用的屬性

序號 屬性和描述
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

獲取或設定一個值,該值指示此 Menu 是否接收主選單啟用通知。

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 類中常用的事件

序號 事件和描述
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 專案。

  • 將選單控制元件從工具箱拖動到設計視窗。

  • 以下示例包含三個選單選項和一些選單項。當用戶單擊某個專案時,程式會更新標題。以下是 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; 
      } 
		
   } 
}

編譯並執行上述程式碼後,將產生以下輸出:

Output of Menu

建議您執行上述示例程式碼,並嘗試 Menu 類的其他屬性和事件。

wpf_controls.htm
廣告