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


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 с KeyGestureICommand, например RoutedCommand. RoutedCommand — это основная реализация ICommand интерфейса для командной системы WPF . Как правило, при выполнении KeyGesture вызывается команда, хотя на ее поведение дополнительно влияют факторы, относящиеся к CanExecute команде, такие как значение . Дополнительные сведения о системе команд см. в разделе Общие сведения о системе команд.

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

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

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

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

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.

Методы

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.

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)

Переопределяет реализацию 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)

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

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