KeyBinding 類別

定義

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)

備註

會將 KeyBindingICommand產生關聯KeyGesture,例如 RoutedCommandRoutedCommand 是 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在、 ModifiersGesture 屬性所有設定的情況下,最後定義的屬性會用於 KeyGesture。 您可能有一個情況,例如,最後一個 Key 集合只會覆寫先前的 Gesture 的 Key 元件,但讓筆勢的修飾詞保持相同。 一般而言,建議您只 Gesture 使用來自 XAML 的屬性;這可避免模棱兩可、提供最簡化的語法,並提供最直接的串行化表示法。

可以在特定物件或類別層級上定義 ,KeyBinding方法是在 類別上CommandManager註冊 RegisterClassInputBinding 。 定義的最典型方式KeyBinding是在控件範本內,藉由宣告一或多個 MouseBindingKeyBinding 專案,在 XAML 中設定 InputBindings 屬性。

建構函式

KeyBinding()

初始化 KeyBinding 類別的新執行個體。

KeyBinding(ICommand, Key, ModifierKeys)

使用指定的 KeyBinding,和指定的 ICommandKey (將轉換為 ModifierKeys),初始化 KeyGesture 類別的新執行個體。

KeyBinding(ICommand, KeyGesture)

使用指定的 KeyBindingICommand,初始化 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 關聯 KeyGestureKeyBinding

Modifiers

取得或設定與這個 ModifierKeys 關聯 KeyGestureKeyBinding

方法

CheckAccess()

判斷呼叫的執行是否可以存取這個 DispatcherObject

(繼承來源 DispatcherObject)
ClearValue(DependencyProperty)

清除屬性的區域數值。 要清除的屬性是由 DependencyProperty 識別項所指定。

(繼承來源 DependencyObject)
ClearValue(DependencyPropertyKey)

清除唯讀屬性的區域數值。 要清除的屬性是由 DependencyPropertyKey 所指定。

(繼承來源 DependencyObject)
Clone()

建立這個 Freezable 的可修改複製,製作這個物件值的深層複製。 當複製這個物件的相依性屬性時,這個方法會複製運算式 (但可能已不再解析),但不會複製動畫或其目前值。

(繼承來源 Freezable)
CloneCore(Freezable)

複製所指定物件之屬性的基底 (非動畫) 值。

(繼承來源 InputBinding)
CloneCurrentValue()

使用 Freezable 的目前值,建立它的可修改複製品 (深層複本)。

(繼承來源 Freezable)
CloneCurrentValueCore(Freezable)

複製指定的物件目前的屬性值。

(繼承來源 InputBinding)
CoerceValue(DependencyProperty)

強制轉型所指定相依性屬性的值。 完成方式是叫用存在於呼叫 DependencyObject 之相依性屬性的屬性中繼資料中所指定的任何 CoerceValueCallback 函式。

(繼承來源 DependencyObject)
CreateInstance()

初始化 Freezable 類別的新執行個體。

(繼承來源 Freezable)
CreateInstanceCore()

建立 KeyBinding 的執行個體。

CreateInstanceCore()

建立 InputBinding 的執行個體。

(繼承來源 InputBinding)
Equals(Object)

判斷提供的 DependencyObject 和目前的 DependencyObject 是否相等。

(繼承來源 DependencyObject)
Freeze()

將目前的物件設為不可修改,並將其 IsFrozen 屬性設定為 true

(繼承來源 Freezable)
FreezeCore(Boolean)

Freezable 物件設為不可修改的,或測試是否可以將它設為不可修改的。

(繼承來源 Freezable)
GetAsFrozen()

使用基底 (非動畫) 屬性值,建立 Freezable 的凍結複本。 因為複本已凍結,所以會以傳址方式複製任何凍結子物件。

(繼承來源 Freezable)
GetAsFrozenCore(Freezable)

使用基底 (非動畫) 屬性值,將執行個體設為所指定 Freezable 的凍結複製品。

(繼承來源 InputBinding)
GetCurrentValueAsFrozen()

使用目前屬性值,建立 Freezable 的凍結複本。 因為複本已凍結,所以會以傳址方式複製任何凍結子物件。

(繼承來源 Freezable)
GetCurrentValueAsFrozenCore(Freezable)

將目前執行個體設為所指定 Freezable 的凍結複本。 如果物件具有動畫相依性屬性,則會複製其目前的動畫值。

(繼承來源 InputBinding)
GetHashCode()

取得這個 DependencyObject 的雜湊碼。

(繼承來源 DependencyObject)
GetLocalValueEnumerator()

建立特定的列舉值,以判斷哪些相依性屬性在此 DependencyObject 上具有本機設定的值。

(繼承來源 DependencyObject)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
GetValue(DependencyProperty)

傳回 DependencyObject 的這個執行個體上之相依性屬性的目前有效值。

(繼承來源 DependencyObject)
InvalidateProperty(DependencyProperty)

重新評估指定相依性屬性的有效值。

(繼承來源 DependencyObject)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnChanged()

目前的 Freezable 物件遭到修改時進行呼叫。

(繼承來源 Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

確定已為剛剛設定的 DependencyObjectType 資料成員,建立適當的內容指標。

(繼承來源 Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

此成員支援 Windows Presentation Foundation (WPF) 基礎結構,而且不適合直接從程式代碼使用。

(繼承來源 Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

每當這個 DependencyObject 上任何相依性屬性的有效值已更新時叫用。 已變更的特定相依性屬性會在事件資料中報告。

(繼承來源 DependencyObject)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

覆寫 OnPropertyChanged(DependencyPropertyChangedEventArgs)DependencyObject 實作也可以叫用任何 Changed 處理常式,以回應類型 Freezable 的變更相依性屬性。

(繼承來源 Freezable)
ReadLocalValue(DependencyProperty)

傳回相依性屬性的區域值 (如果存在)。

(繼承來源 DependencyObject)
ReadPreamble()

確定 Freezable 是從有效的執行緒進行存取。 如果 API 會讀取非相依性屬性的資料成員,則 Freezable 的繼承者必須在該 API 的開頭呼叫這個方法。

(繼承來源 Freezable)
SetCurrentValue(DependencyProperty, Object)

設定相依性屬性的值,而不需要變更其值來源。

(繼承來源 DependencyObject)
SetValue(DependencyProperty, Object)

設定相依性屬性的區域值 (由相依性屬性的識別碼所指定)。

(繼承來源 DependencyObject)
SetValue(DependencyPropertyKey, Object)

設定唯讀相依性屬性的區域數值 (由相依性屬性的 DependencyPropertyKey 識別項所指定)。

(繼承來源 DependencyObject)
ShouldSerializeProperty(DependencyProperty)

傳回值,這個值表示序列化程序是否應該序列化所提供相依性屬性的值。

(繼承來源 DependencyObject)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
VerifyAccess()

請強制執行可以存取這個 DispatcherObject 的呼叫執行緒。

(繼承來源 DispatcherObject)
WritePostscript()

引發 FreezableChanged 事件,並叫用其 OnChanged() 方法。 在任何 API 修改未以相依性屬性儲存的類別成員之後,衍生自 Freezable 的類別應該在 API 的結尾呼叫這個方法。

(繼承來源 Freezable)
WritePreamble()

確認 Freezable 未凍結,而且是從有效的執行緒內容進行存取。 在任何 API 將資料寫入至非相依性屬性的資料成員之前,Freezable 繼承者應該在 API 的開頭呼叫這個方法。

(繼承來源 Freezable)

事件

Changed

發生於 Freezable 或所含的物件遭到修改時。

(繼承來源 Freezable)

適用於

另請參閱