XAML - 選單



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

Menu Hierarchy

屬性

序號 屬性及描述
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。)

事件

序號 事件及描述
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。)

示例

以下示例包含兩個選單選項和一些選單項。當用戶從選單中單擊一個專案時,程式會更新標題。以下是 XAML 程式碼。

<Window x:Class = "XAMLMenu.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
   Title = "MainWindow" Height = "350" Width = "525"> 
	
   <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>
      </Menu> 
      
      <Menu VerticalAlignment = "Top" Width = "517" Margin = "41,0,-41,0">
         <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>
      </Menu> 
   </Grid>
   
</Window>

以下是 C# 中的事件實現:

using System.Linq; 
using System.Windows; 
using System.Windows.Controls;

namespace XAMLMenu {
   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; 
      } 
   } 
}

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

Menu Output

我們建議您執行上述示例程式碼並嘗試其他一些屬性和事件。

xaml_controls.htm
廣告
© . All rights reserved.