Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase InputBinding

 

Publicado: octubre de 2016

Representa un enlace entre un InputGesture y un comando. El comando es potencialmente una RoutedCommand.

Espacio de nombres:   System.Windows.Input
Ensamblado:  PresentationCore (en PresentationCore.dll)

System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Freezable
        System.Windows.Input.InputBinding
          System.Windows.Input.KeyBinding
          System.Windows.Input.MouseBinding

public class InputBinding : Freezable, ICommandSource

NombreDescripción
System_CAPS_protmethodInputBinding()

Proporciona la inicialización base para las clases derivadas de InputBinding.

System_CAPS_pubmethodInputBinding(ICommand, InputGesture)

Inicializa una nueva instancia de la InputBinding clase con el comando especificado y el movimiento de entrada.

NombreDescripción
System_CAPS_pubpropertyCanFreeze

Obtiene un valor que indica si el objeto se puede convertir en no modificable.(Heredado de Freezable).

System_CAPS_pubpropertyCommand

Obtiene o establece el ICommand asociado a este enlace de entrada.

System_CAPS_pubpropertyCommandParameter

Obtiene o establece los datos específicos de los comandos para un comando determinado.

System_CAPS_pubpropertyCommandTarget

Obtiene o establece el elemento de destino del comando.

System_CAPS_pubpropertyDependencyObjectType

Obtiene el DependencyObjectType que ajusta el CLR tipo de esta instancia. (Heredado de DependencyObject).

System_CAPS_pubpropertyDispatcher

Obtiene el Dispatcher Esto DispatcherObject está asociado.(Heredado de DispatcherObject).

System_CAPS_pubpropertyGesture

Obtiene o establece el InputGesture asociado a este enlace de entrada.

System_CAPS_pubpropertyIsFrozen

Obtiene un valor que indica si el objeto se puede modificar actualmente.(Heredado de Freezable).

System_CAPS_pubpropertyIsSealed

Obtiene un valor que indica si esta instancia está actualmente sellada (sólo lectura).(Heredado de DependencyObject).

NombreDescripción
System_CAPS_pubmethodCheckAccess()

Determina si el subproceso de llamada tiene acceso a este DispatcherObject.(Heredado de DispatcherObject).

System_CAPS_pubmethodClearValue(DependencyProperty)

Borra el valor local de una propiedad. La propiedad que se va a borrar se especifica mediante un identificador DependencyProperty.(Heredado de DependencyObject).

System_CAPS_pubmethodClearValue(DependencyPropertyKey)

Borra el valor local de una propiedad de sólo lectura. La propiedad que se va a borrar se especifica mediante un DependencyPropertyKey.(Heredado de DependencyObject).

System_CAPS_pubmethodClone()

Crea un clon modificable del elemento Freezable y hace copias en profundidad de los valores del objeto. 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.(Heredado de Freezable).

System_CAPS_protmethodCloneCore(Freezable)

Copia los valores bases (no animados) de las propiedades del objeto especificado.(Invalida Freezable.CloneCore(Freezable)).

System_CAPS_pubmethodCloneCurrentValue()

Crea un clon modificable (copia en profundidad) de la Freezable con sus valores actuales.(Heredado de Freezable).

System_CAPS_protmethodCloneCurrentValueCore(Freezable)

Copia los valores actuales de las propiedades del objeto especificado.(Invalida Freezable.CloneCurrentValueCore(Freezable)).

System_CAPS_pubmethodCoerceValue(DependencyProperty)

Convierte el valor de la propiedad de dependencia especificada. 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.(Heredado de DependencyObject).

System_CAPS_protmethodCreateInstance()

Inicializa una nueva instancia de la clase Freezable.(Heredado de Freezable).

System_CAPS_protmethodCreateInstanceCore()

Crea una instancia de un InputBinding.(Invalida Freezable.CreateInstanceCore()).

System_CAPS_pubmethodEquals(Object)

Determina si un proporcionado DependencyObject es equivalente a la actual DependencyObject.(Heredado de DependencyObject).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodFreeze()

Convierte el objeto actual en no modificable y establece su propiedad IsFrozen en true.(Heredado de Freezable).

System_CAPS_protmethodFreezeCore(Boolean)

Hace que la Freezable de objeto no modificable o prueba si se puede establecer como no modificable.(Heredado de Freezable).

System_CAPS_pubmethodGetAsFrozen()

Crea una copia inmovilizada de la Freezable, con los valores de la propiedad base (no animada). Dado que la copia está inmovilizada, cualquier subobjeto inmovilizado se copia por referencia.(Heredado de Freezable).

System_CAPS_protmethodGetAsFrozenCore(Freezable)

Convierte la instancia en un clon inmovilizado de especificado Freezable mediante los valores de la propiedad base (no animada).(Invalida Freezable.GetAsFrozenCore(Freezable)).

System_CAPS_pubmethodGetCurrentValueAsFrozen()

Crea una copia inmovilizada de la Freezable con valores de propiedad actuales. Dado que la copia está inmovilizada, cualquier subobjeto inmovilizado se copia por referencia.(Heredado de Freezable).

System_CAPS_protmethodGetCurrentValueAsFrozenCore(Freezable)

Convierte la instancia actual en un clon inmovilizado del valor de Freezable especificado. Si el objeto tiene propiedades de dependencia animadas, se copian sus valores animados actuales.(Invalida Freezable.GetCurrentValueAsFrozenCore(Freezable)).

System_CAPS_pubmethodGetHashCode()

Obtiene un código hash de este objeto DependencyObject.(Heredado de DependencyObject).

System_CAPS_pubmethodGetLocalValueEnumerator()

Crea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en este DependencyObject.(Heredado de DependencyObject).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodGetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de un DependencyObject.(Heredado de DependencyObject).

System_CAPS_pubmethodInvalidateProperty(DependencyProperty)

Vuelve a evaluar el valor efectivo de la propiedad de dependencia especificada(Heredado de DependencyObject).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_protmethodOnChanged()

Llamado cuando actual Freezable se modifica el objeto.(Heredado de Freezable).

System_CAPS_protmethodOnFreezablePropertyChanged(DependencyObject, DependencyObject)

Garantiza que se establecen los punteros de contexto adecuado para un DependencyObjectType miembro de datos que acaba de configurar.(Heredado de Freezable).

System_CAPS_protmethodOnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Este miembro es compatible con la infraestructura de Windows Presentation Foundation (WPF) y no está diseñado para utilizarse directamente desde el código.(Heredado de Freezable).

System_CAPS_protmethodOnPropertyChanged(DependencyPropertyChangedEventArgs)

Reemplaza la implementación de DependencyObject de OnPropertyChanged para invocar también cualquier controlador Changed en respuesta a una propiedad de dependencia cambiante de tipo Freezable.(Heredado de Freezable).

System_CAPS_pubmethodReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si existe.(Heredado de DependencyObject).

System_CAPS_protmethodReadPreamble()

Garantiza que el Freezable se tiene acceso desde un subproceso válido. Los herederos de Freezable debe llamar a este método al principio de cualquier API que lee miembros de datos que no son propiedades de dependencia.(Heredado de Freezable).

System_CAPS_pubmethodSetCurrentValue(DependencyProperty, Object)

Establece el valor de una propiedad de dependencia sin cambiar el origen de su valor.(Heredado de DependencyObject).

System_CAPS_pubmethodSetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia.(Heredado de DependencyObject).

System_CAPS_pubmethodSetValue(DependencyPropertyKey, Object)

Establece el valor local de una propiedad de dependencia de solo lectura, especificado por el identificador DependencyPropertyKey de la propiedad de dependencia.(Heredado de DependencyObject).

System_CAPS_protmethodShouldSerializeProperty(DependencyProperty)

Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia suministrada.(Heredado de DependencyObject).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

System_CAPS_pubmethodVerifyAccess()

Exige que el subproceso que realiza la llamada tiene acceso a este DispatcherObject.(Heredado de DispatcherObject).

System_CAPS_protmethodWritePostscript()

Genera el evento Changed para Freezable e invoca su método OnChanged. 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.(Heredado de Freezable).

System_CAPS_protmethodWritePreamble()

Comprueba que el Freezable no se inmoviliza y que se tiene acceso desde un contexto de subproceso válido. Freezable los herederos deben llamar a este método al principio de cualquier API que escribe en los miembros de datos que no son propiedades de dependencia.(Heredado de Freezable).

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticCommandParameterProperty

Identifica la propiedad de dependencia CommandParameter.

System_CAPS_pubfieldSystem_CAPS_staticCommandProperty

Identifica la propiedad de dependencia Command.

System_CAPS_pubfieldSystem_CAPS_staticCommandTargetProperty

Identifica la propiedad de dependencia CommandTarget.

NombreDescripción
System_CAPS_pubeventChanged

Se produce cuando el Freezable o se modifica un objeto que contiene.(Heredado de Freezable).

Puede especificar que los proporcionados por el usuario invoca un comando mediante la creación de un InputBinding. Cuando el usuario realiza la entrada especificada, el ICommand que se establece en el Command se ejecuta la propiedad.

Puede especificar que el InputBinding invoca un comando que se define en un objeto creando un enlace en el Command, CommandParameter, y CommandTarget Propiedades. Esto le permite definir un comando personalizado y asociarlo a la entrada del usuario. Para obtener más información, vea el segundo ejemplo en la sección ejemplos.

Un InputBinding puede definirse en un objeto específico o en el nivel de clase registrando un RegisterClassInputBinding con el CommandManager.

El InputBinding no es compatible con la propia clase XAML uso porque no expone un constructor predeterminado público (hay un constructor predeterminado, pero está protegido). Sin embargo, las clases derivadas pueden exponer un constructor público y, por tanto, puede establecer propiedades en la clase derivada que se heredan de InputBinding con un XAML uso. Dos existente InputBinding-clases derivadas que se pueden crear instancias en XAML y puede establecer propiedades en XAML son KeyBinding y MouseBinding. La propiedad típica en WPF de programación que es establece en XAML y toma uno o más InputBinding objetos como valores es el UIElement.InputBindings propiedad.

<inputBindingDerivedClass.../>

inputBindingDerivedClass

Una clase derivada de InputBinding que admite la sintaxis de elemento de objeto, como KeyBinding o MouseBinding. Vea la sección Comentarios.

En el ejemplo siguiente se muestra cómo utilizar un KeyBinding para enlazar un KeyGesture a la Open comando. Cuando se realiza el movimiento de tecla, se invoca el comando Abrir.

<Window.InputBindings>
  <KeyBinding Key="B"
              Modifiers="Control" 
              Command="ApplicationCommands.Open" />
</Window.InputBindings>

Los ejemplos siguientes muestran cómo enlazar un comando personalizado a InputBinding objetos. Estos ejemplos crea una aplicación que permite al usuario cambiar el color de fondo realizando una de las siguientes acciones:

  • Al hacer clic en un botón.

  • Al presionar CTRL+C.

  • Con el botón secundario un StackPanel (fuera de la ListBox).

El primer ejemplo crea una clase denominada SimpleDelegateCommand. Esta clase acepta a un delegado para que el objeto que crea el comando pueda definir la acción que se produce cuando se ejecuta el comando. SimpleDelegateCommand También define propiedades que especifican qué clave y mouse entrada invoca el comando. GestureKey y GestureModifier especificar el teclado; MouseGesture especifica la entrada del mouse.

 // Create a class that implements ICommand and accepts a delegate.
public class SimpleDelegateCommand : ICommand
{
    // Specify the keys and mouse actions that invoke the command. 
    public Key GestureKey { get; set; }
    public ModifierKeys GestureModifier { get; set; }
    public MouseAction MouseGesture { get; set; }

    Action<object> _executeDelegate;

    public SimpleDelegateCommand(Action<object> executeDelegate)
    {
        _executeDelegate = executeDelegate;
    }

    public void Execute(object parameter)
    {
        _executeDelegate(parameter);
    }

    public bool CanExecute(object parameter) { return true; }
    public event EventHandler CanExecuteChanged;
}

En el ejemplo siguiente se crea e inicializa el ColorChangeCommand, que es un SimpleDelegateCommand. El ejemplo también define el método que se ejecuta cuando el comando se invoca y establece el GestureKey, GestureModifier, y MouseGesture Propiedades. Una aplicación puede llamar el InitializeCommand método cuando se inicia el programa, como se muestra en el constructor de un Window.

public SimpleDelegateCommand ChangeColorCommand
{
    get { return changeColorCommand; }
}

private SimpleDelegateCommand changeColorCommand;

private void InitializeCommand()
{
    originalColor = this.Background;

    changeColorCommand = new SimpleDelegateCommand(x => this.ChangeColor(x));

    DataContext = this;
    changeColorCommand.GestureKey = Key.C;
    changeColorCommand.GestureModifier = ModifierKeys.Control;
    ChangeColorCommand.MouseGesture = MouseAction.RightClick;
}

private Brush originalColor, alternateColor;

// Switch the Background color between
// the original and selected color.
private void ChangeColor(object colorString)
{
    if (colorString == null)
    {
        return;
    }

    Color newColor = 
        (Color)ColorConverter.ConvertFromString((String)colorString);

    alternateColor = new SolidColorBrush(newColor);

    if (this.Background == originalColor)
    {
        this.Background = alternateColor;
    }
    else
    {
        this.Background = originalColor;
    }
}

Por último, en el ejemplo siguiente se crea la interfaz de usuario. El ejemplo agrega un KeyBinding y un MouseBinding a un StackPanel que contiene un Button y un ListBox. Cuando el usuario selecciona un elemento en el ListBox, que puede cambiar el color de fondo al color seleccionado. En cada caso, el CommandParameter propiedad está enlazada con el elemento seleccionado en el ListBox, y el Command propiedad está enlazada a la ColorChangeCommand. El KeyBinding.Key, KeyBinding.Modifiers, y MouseBinding.MouseAction propiedades se enlazan a las propiedades correspondientes la SimpleDelegateCommand clase.

<StackPanel Background="Transparent">
  <StackPanel.InputBindings>

    <KeyBinding Command="{Binding ChangeColorCommand}"
                CommandParameter="{Binding ElementName=colorPicker, Path=SelectedItem}"
                Key="{Binding ChangeColorCommand.GestureKey}"
                Modifiers="{Binding ChangeColorCommand.GestureModifier}"/>

    <MouseBinding Command="{Binding ChangeColorCommand}"
                  CommandParameter="{Binding ElementName=colorPicker, Path=SelectedItem}"
                  MouseAction="{Binding ChangeColorCommand.MouseGesture}"/>

  </StackPanel.InputBindings>

  <Button Content="Change Color" 
          Command="{Binding ChangeColorCommand}" 
          CommandParameter="{Binding ElementName=colorPicker, Path=SelectedItem}">
  </Button>

  <ListBox Name="colorPicker"
           Background="Transparent"
           xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <sys:String>Red</sys:String>
    <sys:String>Green</sys:String>
    <sys:String>Blue</sys:String>
    <sys:String>Yellow</sys:String>
    <sys:String>Orange</sys:String>
    <sys:String>Purple</sys:String>
  </ListBox>
</StackPanel>

.NET Framework
Disponible desde 3.0

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: