- XAML 教程
- XAML - 首頁
- XAML - 概述
- XAML - 環境設定
- 在 macOS 上編寫 XAML 應用程式
- XAML 與 C# 程式碼
- XAML 與 VB.NET
- XAML - 構建塊
- XAML - 控制元件
- XAML - 佈局
- XAML - 事件處理
- XAML - 資料繫結
- XAML - 標記擴充套件
- XAML - 依賴屬性
- XAML - 資源
- XAML - 模板
- XAML - 樣式
- XAML - 觸發器
- XAML - 除錯
- XAML - 自定義控制元件
- XAML 有用資源
- XAML - 快速指南
- XAML - 有用資源
- XAML - 討論
XAML - 選單
選單是一個控制元件,它使您可以分層組織與命令和事件處理程式關聯的元素。選單是一個 ItemsControl,因此它可以包含任何物件型別的集合,例如字串、影像或面板。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。) |
事件
| 序號 | 事件及描述 |
|---|---|
| 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;
}
}
}
編譯並執行上述程式碼後,將產生以下輸出:
我們建議您執行上述示例程式碼並嘗試其他一些屬性和事件。