KeyBinding Clase

Definición

Enlaza KeyGesture a RoutedCommand (u otra implementación de ICommand).Binds a KeyGesture to a RoutedCommand (or another ICommand implementation).

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
Herencia
Herencia

Ejemplos

En el ejemplo siguiente se crea un KeyBinding y se agrega a la InputBindingCollection de la ventana raíz.The following example creates a KeyBinding and adds it to the InputBindingCollection of the root window.

<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)

Comentarios

Un KeyBinding asocia un KeyGesture con un ICommand , como un RoutedCommand .A KeyBinding associates a KeyGesture with a ICommand, such as a RoutedCommand. RoutedCommand es la implementación principal de la ICommand interfaz para el sistema de comandos de WPF.RoutedCommand is the primary implementation of the ICommand interface for the WPF commanding system . En general, cuando KeyGesture se ejecuta, se invoca el comando, aunque el comportamiento del comando se ve influido por factores específicos del comando, como el CanExecute valor.In general, when the KeyGesture is executed the command is invoked, although the command behavior is further influenced by command-specific factors such as the CanExecute value. Para obtener más información sobre los comandos, consulte la información general sobre comandos.For more information on commanding, see the Commanding Overview.

A excepción de las teclas de función y las teclas del teclado numérico, un válido KeyGesture debe contener exactamente uno Key y uno o varios ModifierKeys .With the exception of the function keys and the numeric keypad keys, a valid KeyGesture must contain exactly one Key and one or more ModifierKeys. Las teclas de función y las teclas del teclado numérico no requieren una tecla modificadora para ser un válido KeyGesture .Function keys and numeric keypad keys do not require a modifier key in order to be a valid KeyGesture. Es posible especificar una clase no válida KeyGesture y una KeyBinding con un gesto asociado no válido, ya sea a través de XAML o código.It is possible to specify an invalid KeyGesture and a KeyBinding with an invalid associated gesture, either through XAML or code. Por ejemplo, no hay ninguna validación que Evite crear y enlazar un KeyGesture que contenga solo una clave que no es de función, o solo modificadores pero sin clave.For instance, there is no validation that prevents creating and binding a KeyGesture that contains only a nonfunction key, or only modifiers but no key. Este tipo KeyBinding nunca intentará invocar su comando asociado.Such a KeyBinding will never attempt to invoke its associated command.

Al definir un KeyBinding en lenguaje XAML (XAML) hay dos maneras de especificar KeyGesture .When defining a KeyBinding in Extensible Application Markup Language (XAML) there are two ways to specify the KeyGesture. La primera forma de establecer KeyBinding en XAML es definir el Gesture atributo del KeyBinding elemento, que permite que una sintaxis especifique las claves y modificadores como una sola cadena, por ejemplo "Ctrl + P".The first way to establish a KeyBinding in XAML is to define the Gesture attribute of the KeyBinding element, which enables a syntax to specify keys and modifiers as a single string, for example "CTRL+P". La segunda manera es definir el Key atributo y los Modifiers atributos del KeyBinding elemento.The second way is to define the Key attribute and the Modifiers attributes of the KeyBinding element. Ambas formas de establecer KeyGesture son equivalentes y modifican el mismo objeto subyacente, pero se producirá un conflicto si se usan ambos.Both ways of setting the KeyGesture are equivalent and modify the same underlying object, but there will be a conflict if both are used. En el caso de que Key Modifiers Gesture se establezcan todos los atributos, y, se usará el atributo que se define en último lugar para KeyGesture .In the case when the Key, Modifiers, and the Gesture attributes are all set, the attribute which is defined last will be used for the KeyGesture. Puede haber situaciones en las que, por ejemplo Key , un conjunto último sobrescriba solo el componente clave de un gesto anterior y deje los modificadores del gesto.You can potentially have situations where for example a Key set last will overwrite just the Key component of a preceding Gesture but leave the Gesture's modifiers the same. En general, se recomienda usar solo el Gesture atributo de XAML; Esto evitará la ambigüedad, proporciona la sintaxis más simplificada y proporciona la representación más directa para la serialización.In general, it is recommended that you use only the Gesture attribute from XAML; this will avoid ambiguity, provides the most streamlined syntax, and provides the most straightforward representation for serialization.

Un KeyBinding se puede definir en un objeto concreto o en el nivel de clase registrando RegisterClassInputBinding en la CommandManager clase.A KeyBinding can be defined on a specific object or at the class level by registering a RegisterClassInputBinding on the CommandManager class. La forma más habitual de definir un KeyBinding elemento es dentro de la plantilla de control, estableciendo la InputBindings propiedad en XAML declarando uno o varios MouseBinding KeyBinding elementos o.The most typical way to define a KeyBinding is within the control template, setting the InputBindings property in XAML by declaring one or more MouseBinding or KeyBinding elements.

Constructores

KeyBinding()

Inicializa una nueva instancia de la clase KeyBinding.Initializes a new instance of the KeyBinding class.

KeyBinding(ICommand, Key, ModifierKeys)

Inicializa una nueva instancia de la clase KeyBinding mediante el objeto ICommand especificado y los objetos Key y ModifierKeys especificados, que se convertirán en un KeyGesture.Initializes a new instance of the KeyBinding class using the specified ICommand and the specified Key and ModifierKeys which will be converted into a KeyGesture.

KeyBinding(ICommand, KeyGesture)

Inicializa una nueva instancia de la clase KeyBinding utilizando los objetos ICommand y KeyGesture especificados.Initializes a new instance of the KeyBinding class using the specified ICommand and KeyGesture.

Campos

KeyProperty

Identifica la propiedad de dependencia Key.Identifies the Key dependency property.

ModifiersProperty

Identifica la propiedad de dependencia Modifiers.Identifies the Modifiers dependency property.

Propiedades

CanFreeze

Obtiene un valor que indica si el objeto se puede convertir en no modificable.Gets a value that indicates whether the object can be made unmodifiable.

(Heredado de Freezable)
Command

Obtiene o establece el ICommand asociado a este enlace de entrada.Gets or sets the ICommand associated with this input binding.

(Heredado de InputBinding)
CommandParameter

Obtiene o establece los datos específicos de un comando concreto.Gets or sets the command-specific data for a particular command.

(Heredado de InputBinding)
CommandTarget

Obtiene o establece el elemento de destino del comando.Gets or sets the target element of the command.

(Heredado de InputBinding)
DependencyObjectType

Obtiene el DependencyObjectType que contiene el tipo CLR de esta instancia.Gets the DependencyObjectType that wraps the CLR type of this instance.

(Heredado de DependencyObject)
Dispatcher

Obtiene el objeto Dispatcher al que está asociado DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Heredado de DispatcherObject)
Gesture

Obtiene o establece el gesto asociado a este KeyBinding.Gets or sets the gesture associated with this KeyBinding.

IsFrozen

Obtiene un valor que indica si el objeto se puede modificar actualmente.Gets a value that indicates whether the object is currently modifiable.

(Heredado de Freezable)
IsSealed

Obtiene un valor que indica si esta instancia está actualmente sellada (es de solo lectura).Gets a value that indicates whether this instance is currently sealed (read-only).

(Heredado de DependencyObject)
Key

Obtiene o establece el objeto Key del KeyGesture asociado a este KeyBinding.Gets or sets the Key of the KeyGesture associated with this KeyBinding.

Modifiers

Obtiene o establece el objeto ModifierKeys del KeyGesture asociado a este KeyBinding.Gets or sets the ModifierKeys of the KeyGesture associated with this KeyBinding.

Métodos

CheckAccess()

Determina si el subproceso de la llamada tiene acceso a DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Heredado de DispatcherObject)
ClearValue(DependencyProperty)

Borra el valor local de una propiedad.Clears the local value of a property. La propiedad que se va a borrar se especifica mediante un identificador DependencyProperty.The property to be cleared is specified by a DependencyProperty identifier.

(Heredado de DependencyObject)
ClearValue(DependencyPropertyKey)

Borra el valor local de una propiedad de solo lectura.Clears the local value of a read-only property. La propiedad que se va a borrar se especifica mediante un DependencyPropertyKey.The property to be cleared is specified by a DependencyPropertyKey.

(Heredado de DependencyObject)
Clone()

Crea un clon modificable del elemento Freezable y hace copias en profundidad de los valores del objeto.Creates a modifiable clone of the Freezable, making deep copies of the object's values. Cuando se copian las propiedades de dependencia del objeto, este método copia las expresiones (que puede que ya no se resuelvan), pero no copia las animaciones ni sus valores actuales.When copying the object's dependency properties, this method copies expressions (which might no longer resolve) but not animations or their current values.

(Heredado de Freezable)
CloneCore(Freezable)

Copia los valores base (sin animaciones) de las propiedades del objeto especificado.Copies the base (non-animated) values of the properties of the specified object.

(Heredado de InputBinding)
CloneCurrentValue()

Crea un clon modificable (copia en profundidad) de Freezable con sus valores actuales.Creates a modifiable clone (deep copy) of the Freezable using its current values.

(Heredado de Freezable)
CloneCurrentValueCore(Freezable)

Copia los valores actuales de las propiedades del objeto especificado.Copies the current values of the properties of the specified object.

(Heredado de InputBinding)
CoerceValue(DependencyProperty)

Convierte el valor de la propiedad de dependencia especificada.Coerces the value of the specified dependency property. Esto se logra invocando cualquier función CoerceValueCallback especificada en los metadatos de la propiedad de dependencia tal como existe en la clase DependencyObject que llama.This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.

(Heredado de DependencyObject)
CreateInstance()

Inicializa una nueva instancia de la clase Freezable.Initializes a new instance of the Freezable class.

(Heredado de Freezable)
CreateInstanceCore()

Crea una instancia de KeyBinding.Creates an instance of a KeyBinding.

CreateInstanceCore()

Crea una instancia de un objeto InputBinding.Creates an instance of an InputBinding.

(Heredado de InputBinding)
Equals(Object)

Determina si un objeto DependencyObject proporcionado es equivalente al objeto DependencyObject actual.Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Heredado de DependencyObject)
Freeze()

Convierte el objeto actual en no modificable y establece su propiedad IsFrozen en true.Makes the current object unmodifiable and sets its IsFrozen property to true.

(Heredado de Freezable)
FreezeCore(Boolean)

Convierte el objeto Freezable en no modificable o prueba si se puede convertir en no modificable.Makes the Freezable object unmodifiable or tests whether it can be made unmodifiable.

(Heredado de Freezable)
GetAsFrozen()

Crea una copia inmovilizada de Freezable, con los valores de propiedades base (no animadas).Creates a frozen copy of the Freezable, using base (non-animated) property values. Puesto que se inmoviliza la copia, se copia cualquier subobjeto inmovilizado por referencia.Because the copy is frozen, any frozen sub-objects are copied by reference.

(Heredado de Freezable)
GetAsFrozenCore(Freezable)

Convierte la instancia en un clon inmovilizado del objeto Freezable especificado mediante los valores base de propiedades (sin animaciones).Makes the instance a frozen clone of the specified Freezable by using base (non-animated) property values.

(Heredado de InputBinding)
GetCurrentValueAsFrozen()

Crea una copia inmovilizada de Freezable con los valores de propiedad actuales.Creates a frozen copy of the Freezable using current property values. Puesto que se inmoviliza la copia, se copia cualquier subobjeto inmovilizado por referencia.Because the copy is frozen, any frozen sub-objects are copied by reference.

(Heredado de Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Convierte la instancia actual en un clon inmovilizado del valor de Freezable especificado.Makes the current instance a frozen clone of the specified Freezable. Si el objeto tiene propiedades de dependencia animadas, se copian sus valores animados actuales.If the object has animated dependency properties, their current animated values are copied.

(Heredado de InputBinding)
GetHashCode()

Obtiene un código hash de este objeto DependencyObject.Gets a hash code for this DependencyObject.

(Heredado de DependencyObject)
GetLocalValueEnumerator()

Crea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en DependencyObject.Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Heredado de DependencyObject)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de un DependencyObject.Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Heredado de DependencyObject)
InvalidateProperty(DependencyProperty)

Vuelve a evaluar el valor efectivo para la propiedad de dependencia especificada.Re-evaluates the effective value for the specified dependency property.

(Heredado de DependencyObject)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
OnChanged()

Se le llama cuando el objeto Freezable actual se modifica.Called when the current Freezable object is modified.

(Heredado de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Se asegura de que se establecen los punteros contextuales adecuados para un miembro de datos DependencyObjectType que se acaba de establecer.Ensures that appropriate context pointers are established for a DependencyObjectType data member that has just been set.

(Heredado de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Este miembro admite la infraestructura de Windows Presentation Foundation (WPF) y no está diseñada para utilizarse directamente desde el código.This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

(Heredado de Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Reemplaza la implementación DependencyObject de OnPropertyChanged(DependencyPropertyChangedEventArgs) para invocar también cualquier controlador Changed en respuesta a una propiedad de dependencia cambiante de tipo Freezable.Overrides the DependencyObject implementation of OnPropertyChanged(DependencyPropertyChangedEventArgs) to also invoke any Changed handlers in response to a changing dependency property of type Freezable.

(Heredado de Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Se invoca cuando se actualiza el valor efectivo de alguna propiedad de dependencia en este DependencyObject.Invoked whenever the effective value of any dependency property on this DependencyObject has been updated. La propiedad de dependencia específica que cambió se notifica en los datos de evento.The specific dependency property that changed is reported in the event data.

(Heredado de DependencyObject)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si existe.Returns the local value of a dependency property, if it exists.

(Heredado de DependencyObject)
ReadPreamble()

Se asegura de que se tiene acceso a Freezable desde un subproceso válido.Ensures that the Freezable is being accessed from a valid thread. Los herederos de Freezable deben llamar a este método al inicio de las API que leen miembros de datos que no son propiedades de dependencia.Inheritors of Freezable must call this method at the beginning of any API that reads data members that are not dependency properties.

(Heredado de Freezable)
SetCurrentValue(DependencyProperty, Object)

Establece el valor de una propiedad de dependencia sin cambiar el origen del valor.Sets the value of a dependency property without changing its value source.

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia, especificado mediante el identificador de la propiedad de dependencia.Sets the local value of a dependency property, specified by its dependency property identifier.

(Heredado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Establece el valor local de una propiedad de dependencia de solo lectura, especificado por el identificador DependencyPropertyKey de la propiedad de dependencia.Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(Heredado de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia especificada.Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Heredado de DependencyObject)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)
VerifyAccess()

Exige que el subproceso de la llamada tenga acceso a DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Heredado de DispatcherObject)
WritePostscript()

Genera el evento Changed para Freezable e invoca su método OnChanged().Raises the Changed event for the Freezable and invokes its OnChanged() method. Las clases que derivan de Freezable deben llamar a este método al final de cualquier API que modifique miembros de clase que no estén almacenados como propiedades de dependencia.Classes that derive from Freezable should call this method at the end of any API that modifies class members that are not stored as dependency properties.

(Heredado de Freezable)
WritePreamble()

Comprueba que no se inmovilice Freezable y que se tiene acceso desde un contexto de subproceso válido.Verifies that the Freezable is not frozen and that it is being accessed from a valid threading context. Los herederos de Freezable deben llamar a este método al inicio de las API que escriben en miembros de datos que no son propiedades de dependencia.Freezable inheritors should call this method at the beginning of any API that writes to data members that are not dependency properties.

(Heredado de Freezable)

Eventos

Changed

Se produce cuando se modifican la clase Freezable o un objeto que la contiene.Occurs when the Freezable or an object it contains is modified.

(Heredado de Freezable)

Se aplica a

Consulte también