KeyBinding 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將 KeyGesture 繫結至 RoutedCommand (或其他 ICommand 實作)。
public ref class KeyBinding : System::Windows::Input::InputBinding
public class KeyBinding : System.Windows.Input.InputBinding
type KeyBinding = class
inherit InputBinding
Public Class KeyBinding
Inherits InputBinding
- 繼承
- 繼承
範例
下列範例會建立 , KeyBinding 並將它加入根 InputBindingCollection 視窗的 。
<Window.InputBindings>
<KeyBinding Command="ApplicationCommands.Open"
Gesture="CTRL+R" />
</Window.InputBindings>
// Creating a KeyBinding between the Open command and Ctrl-R
KeyBinding OpenCmdKeyBinding = new KeyBinding(
ApplicationCommands.Open,
Key.R,
ModifierKeys.Control);
this.InputBindings.Add(OpenCmdKeyBinding);
' Creating a KeyBinding between the Open command and Ctrl-R
Dim OpenCmdKeyBinding As New KeyBinding(ApplicationCommands.Open, Key.R, ModifierKeys.Control)
Me.InputBindings.Add(OpenCmdKeyBinding)
備註
會將 KeyBinding 與ICommand產生關聯KeyGesture,例如 RoutedCommand。 RoutedCommand 是 WPF 命令系統 介面的主要實 ICommand 作。 一般而言,當執行 命令時 KeyGesture ,會叫用 命令,不過命令行為會進一步受到命令特定因素的影響,例如 CanExecute 值。 如需命令的詳細資訊,請參閱 命令概觀。
除了函式索引鍵和數值鍵盤按鍵之外,有效的 KeyGesture 必須只包含一 Key 或多個 ModifierKeys。 函式索引鍵和數值按鍵板按鍵不需要修飾詞鍵,才能成為有效的 KeyGesture。 您可以透過 XAML 或程式碼指定無效 KeyGesture 的 與 KeyBinding 具有無效關聯手勢的 。 例如,沒有任何驗證會防止建立和系 KeyGesture 結只包含非功能索引鍵的 ,或只包含修飾詞,但沒有索引鍵。 KeyBinding這類永遠不會嘗試叫用其相關聯的命令。
在 Extensible Application Markup Language (XAML 中定義 KeyBinding 時,) 有兩種方式可以指定 KeyGesture。 在 XAML 中建立 的第一 KeyBinding 種方式是定義 Gesture 項目的 屬性 KeyBinding ,這可讓語法將索引鍵和修飾詞指定為單一字串,例如 “CTRL+P”。 第二種方式是定義 Key 屬性和 Modifiers 元素的屬性 KeyBinding 。 這兩種設定 KeyGesture 方式都是相等的,並修改相同的基礎物件,但如果兩者都使用,就會發生衝突。 Key在、 Modifiers與 Gesture 屬性所有設定的情況下,最後定義的屬性會用於 KeyGesture。 您可能有一個情況,例如,最後一個 Key 集合只會覆寫先前的 Gesture 的 Key 元件,但讓筆勢的修飾詞保持相同。 一般而言,建議您只 Gesture 使用來自 XAML 的屬性;這可避免模棱兩可、提供最簡化的語法,並提供最直接的串行化表示法。
可以在特定物件或類別層級上定義 ,KeyBinding方法是在 類別上CommandManager註冊 RegisterClassInputBinding 。 定義的最典型方式KeyBinding是在控件範本內,藉由宣告一或多個 MouseBinding 或 KeyBinding 專案,在 XAML 中設定 InputBindings 屬性。
建構函式
KeyBinding() |
初始化 KeyBinding 類別的新執行個體。 |
KeyBinding(ICommand, Key, ModifierKeys) |
使用指定的 KeyBinding,和指定的 ICommand 與 Key (將轉換為 ModifierKeys),初始化 KeyGesture 類別的新執行個體。 |
KeyBinding(ICommand, KeyGesture) |
使用指定的 KeyBinding 和 ICommand,初始化 KeyGesture 類別的新執行個體。 |
欄位
KeyProperty |
識別 Key 相依性屬性。 |
ModifiersProperty |
識別 Modifiers 相依性屬性。 |
屬性
CanFreeze |
取得值,指出是否可以將物件設為不可修改。 (繼承來源 Freezable) |
Command |
取得或設定與這個輸入繫結相關聯的 ICommand。 (繼承來源 InputBinding) |
CommandParameter |
取得或設定特定命令的命令特有資料。 (繼承來源 InputBinding) |
CommandTarget |
取得或設定命令的目標項目。 (繼承來源 InputBinding) |
DependencyObjectType |
DependencyObjectType取得包裝這個實體之 CLR 型別的 。 (繼承來源 DependencyObject) |
Dispatcher |
取得與這個 Dispatcher 關聯的 DispatcherObject。 (繼承來源 DispatcherObject) |
Gesture |
取得或設定與這個 KeyBinding 關聯的筆勢。 |
IsFrozen |
取得值,該值表示物件目前是否可修改。 (繼承來源 Freezable) |
IsSealed |
取得值,這個值表示此執行個體目前是否已密封 (唯讀)。 (繼承來源 DependencyObject) |
Key |
取得或設定與這個 Key 關聯 KeyGesture 的 KeyBinding。 |
Modifiers |
取得或設定與這個 ModifierKeys 關聯 KeyGesture 的 KeyBinding。 |
方法
事件
Changed |
發生於 Freezable 或所含的物件遭到修改時。 (繼承來源 Freezable) |