Поделиться через


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)

Комментарии

Объект KeyBinding связывается KeyGesture с ICommand, например, с RoutedCommand. RoutedCommand — это основная реализация ICommand интерфейса для системы команд WPF. Как правило, при KeyGesture выполнении команды вызывается, хотя поведение команды также зависит от таких факторов, как CanExecute значение. Дополнительные сведения о команде см. в разделе "Обзор команд".

За исключением ключей функции и числовых ключей клавиатуры допустимое KeyGesture значение должно содержать ровно один Key и несколько ModifierKeys. Ключи функции и числовые клавиши клавиатуры не требуют модификатора, чтобы быть допустимым KeyGesture. Можно указать недопустимый KeyGesture и KeyBinding недопустимый связанный жест с помощью XAML или кода. Например, не существует проверки, которая предотвращает создание и привязку, KeyGesture которая содержит только нефункциональный ключ или только модификаторы, но не ключ. Такая команда никогда KeyBinding не будет пытаться вызвать связанную с ней команду.

При определении языка разметки KeyBinding расширяемого приложения (XAML) можно указать KeyGestureдва способа. Первый способ установить KeyBinding в XAML — определить Gesture атрибут KeyBinding элемента, который позволяет синтаксису указывать ключи и модификаторы в виде одной строки, например CTRL+P. Второй способ — определить Key атрибут и Modifiers атрибуты KeyBinding элемента. Оба способа настройки KeyGesture эквивалентны и изменяют один и тот же базовый объект, но если оба используются, будет конфликт. В случае, если KeyModifiersатрибуты и Gesture атрибуты являются всеми наборами, для атрибута, который определяется последним, будет использоваться для KeyGesture. Возможно, у вас могут быть ситуации, когда, например Key , последний набор перезаписывает только ключевой компонент предыдущего жеста, но оставьте модификаторы жеста одинаковыми. Как правило, рекомендуется использовать только Gesture атрибут из XAML. Это позволит избежать неоднозначности, предоставляет наиболее упрощенный синтаксис и предоставляет наиболее простое представление для сериализации.

Можно KeyBinding определить на определенном объекте или на уровне класса, зарегистрируя его RegisterClassInputBindingCommandManager в классе. Наиболее типичный способ определить объект KeyBinding находится в шаблоне элемента управления, задав InputBindings свойство в XAML, объявив один или несколько MouseBindingKeyBinding элементов.

Конструкторы

Имя Описание
KeyBinding()

Инициализирует новый экземпляр класса KeyBinding.

KeyBinding(ICommand, Key, ModifierKeys)

Инициализирует новый экземпляр KeyBinding класса, используя указанный и указанный KeyICommand, и 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 связанный KeyGesture с ним KeyBindingобъект.

Modifiers

Возвращает или задает ModifierKeys связанный KeyGesture с ним KeyBindingобъект.

Методы

Имя Описание
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)

Принуждает значение указанного свойства зависимостей. Это достигается путем вызова любой CoerceValueCallback функции, указанной в метаданных свойств для свойства зависимостей, так как он существует при вызове DependencyObject.

(Унаследовано от DependencyObject)
CreateInstance()

Инициализирует новый экземпляр класса Freezable.

(Унаследовано от Freezable)
CreateInstanceCore()

Создает экземпляр объекта KeyBinding.

Equals(Object)

Определяет, эквивалентен ли предоставленный DependencyObject объект текущему DependencyObject.

(Унаследовано от DependencyObject)
Freeze()

Делает текущий объект неизменяемым и задает для свойства значение IsFrozentrue.

(Унаследовано от 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, DependencyProperty)

Этот член поддерживает инфраструктуру Windows Presentation Foundation (WPF) и не предназначен для использования непосредственно из кода.

(Унаследовано от Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Убедитесь, что для элемента данных, который только что был установлен, установлены DependencyObjectType соответствующие указатели контекста.

(Унаследовано от Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Вызывается при каждом обновлении эффективного значения любого свойства DependencyObject зависимостей. Определенное свойство зависимостей, которое изменилось, сообщается в данных события.

(Унаследовано от DependencyObject)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Переопределяет DependencyObject реализацию OnPropertyChanged(DependencyPropertyChangedEventArgs) для вызова всех Changed обработчиков в ответ на изменение свойства зависимостей типа Freezable.

(Унаследовано от Freezable)
ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если оно существует.

(Унаследовано от DependencyObject)
ReadPreamble()

Гарантирует, что Freezable доступ к ней осуществляется из допустимого потока. Наследующие метод 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()

Changed Вызывает событие для Freezable метода и вызывает его OnChanged() метод. Классы, производные от Freezable этого метода, должны вызываться в конце любого API, который изменяет элементы класса, которые не хранятся в качестве свойств зависимостей.

(Унаследовано от Freezable)
WritePreamble()

Проверяет, что Freezable он не заморожен и к нему осуществляется доступ из допустимого контекста потоков. Freezable наследующие метод должны вызывать этот метод в начале любого API, записывающего элементы данных, которые не являются свойствами зависимостей.

(Унаследовано от Freezable)

События

Имя Описание
Changed

Происходит при Freezable изменении объекта или объекта, содержащего его.

(Унаследовано от Freezable)

Применяется к

См. также раздел