Compartilhar via


KeyBinding Classe

Definição

Associa um KeyGesture a um RoutedCommand (ou a outra implementação de 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
Herança
Herança

Exemplos

O exemplo a seguir cria um KeyBinding e o InputBindingCollection adiciona ao da janela raiz.

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

Comentários

Um KeyBinding associa um KeyGesture a um ICommand, como um RoutedCommand. RoutedCommand é a implementação primária da ICommand interface para o sistema de comando do WPF. Em geral, quando o KeyGesture é executado, o comando é invocado, embora o comportamento do comando seja ainda mais influenciado por fatores específicos do comando, como o CanExecute valor. Para obter mais informações sobre comandos, consulte Visão geral de comandos.

Com exceção das chaves de função e das teclas numéricas do teclado, um válido KeyGesture deve conter exatamente um Key e um ou mais ModifierKeys. As teclas de função e as teclas numéricas do teclado não exigem uma chave modificadora para serem válidas KeyGesture. É possível especificar um inválido KeyGesture e um KeyBinding com um gesto associado inválido, por meio de XAML ou código. Por exemplo, não há validação que impeça a criação e a associação de uma KeyGesture que contenha apenas uma chave não funcional ou apenas modificadores, mas nenhuma chave. Tal um KeyBinding nunca tentará invocar seu comando associado.

Ao definir um KeyBinding em XAML (Extensible Application Markup Language) há duas maneiras de especificar o KeyGesture. A primeira maneira de estabelecer um KeyBinding no XAML é definir o Gesture atributo do KeyBinding elemento , que permite que uma sintaxe especifique chaves e modificadores como uma única cadeia de caracteres, por exemplo, "CTRL+P". A segunda maneira é definir o Key atributo e os Modifiers atributos do KeyBinding elemento. Ambas as maneiras de definir o KeyGesture são equivalentes e modificam o mesmo objeto subjacente, mas haverá um conflito se ambos forem usados. No caso em que os Keyatributos , Modifierse Gesture estão todos definidos, o atributo definido por último será usado para o KeyGesture. Você pode ter situações em que, por exemplo, um Key último conjunto substituirá apenas o componente Key de um Gesto anterior, mas deixará os modificadores do Gesto da mesma forma. Em geral, é recomendável que você use apenas o Gesture atributo de XAML; isso evitará ambiguidade, fornecerá a sintaxe mais simplificada e fornecerá a representação mais simples para serialização.

Um KeyBinding pode ser definido em um objeto específico ou no nível da classe registrando um RegisterClassInputBinding na CommandManager classe . A maneira mais típica de definir um KeyBinding é dentro do modelo de controle, definindo a InputBindings propriedade em XAML declarando um ou mais MouseBinding elementos ou KeyBinding .

Construtores

KeyBinding()

Inicializa uma nova instância da classe KeyBinding.

KeyBinding(ICommand, Key, ModifierKeys)

Inicializa uma nova instância da classe KeyBinding usando o ICommand especificado e o Key e o ModifierKeys especificados que serão convertidos em um KeyGesture.

KeyBinding(ICommand, KeyGesture)

Inicializa uma nova instância da classe KeyBinding usando o ICommand e KeyGesture especificados.

Campos

KeyProperty

Identifica a propriedade de dependência Key.

ModifiersProperty

Identifica a propriedade de dependência Modifiers.

Propriedades

CanFreeze

Obtém um valor que indica se o objeto pode se tornar não modificável.

(Herdado de Freezable)
Command

Obtém ou define o ICommand associado a esta associação de entrada.

(Herdado de InputBinding)
CommandParameter

Obtém ou define os dados específicos do comando para um determinado comando.

(Herdado de InputBinding)
CommandTarget

Obtém ou define o elemento de destino do comando.

(Herdado de InputBinding)
DependencyObjectType

Obtém o DependencyObjectType que encapsula o tipo CLR dessa instância.

(Herdado de DependencyObject)
Dispatcher

Obtém o Dispatcher ao qual este DispatcherObject está associado.

(Herdado de DispatcherObject)
Gesture

Obtém ou define o gesto associado a essa KeyBinding.

IsFrozen

Obtém um valor que indica se o objeto pode ser modificado no momento.

(Herdado de Freezable)
IsSealed

Obtém um valor que indica se essa instância está validada no momento (somente leitura).

(Herdado de DependencyObject)
Key

Obtém ou define a Key do KeyGesture associado a essa KeyBinding.

Modifiers

Obtém ou define a ModifierKeys do KeyGesture associado a essa KeyBinding.

Métodos

CheckAccess()

Determina se o thread de chamada tem acesso a este DispatcherObject.

(Herdado de DispatcherObject)
ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade. A propriedade a ser limpa é especificada por um identificador DependencyProperty.

(Herdado de DependencyObject)
ClearValue(DependencyPropertyKey)

Limpa o valor local de uma propriedade somente leitura. A propriedade a ser limpa é especificada por um DependencyPropertyKey.

(Herdado de DependencyObject)
Clone()

Cria um clone modificável do Freezable, fazendo cópias em profundidade dos valores do objeto. Ao copiar as propriedades de dependência do objeto, esse método copia as expressões (que talvez não possam mais ser resolvidas), mas não as animações nem seus valores atuais.

(Herdado de Freezable)
CloneCore(Freezable)

Copia os valores base (não animados) das propriedades do objeto especificado.

(Herdado de InputBinding)
CloneCurrentValue()

Cria um clone modificável (cópia profunda) do Freezable usando seus valores atuais.

(Herdado de Freezable)
CloneCurrentValueCore(Freezable)

Copia os valores atuais das propriedades do objeto especificado.

(Herdado de InputBinding)
CoerceValue(DependencyProperty)

Converte o valor da propriedade de dependência especificada. Isso é feito invocando qualquer função CoerceValueCallback especificada nos metadados de propriedade para a propriedade de dependência, visto que ela existe na chamada a DependencyObject.

(Herdado de DependencyObject)
CreateInstance()

Inicializa uma nova instância da classe Freezable.

(Herdado de Freezable)
CreateInstanceCore()

Cria uma instância de um KeyBinding.

CreateInstanceCore()

Cria uma instância de um InputBinding.

(Herdado de InputBinding)
Equals(Object)

Determina se um DependencyObject fornecido é equivalente ao DependencyObject atual.

(Herdado de DependencyObject)
Freeze()

Torna o objeto atual não modificável e define sua propriedade IsFrozen para true.

(Herdado de Freezable)
FreezeCore(Boolean)

Torna o objeto Freezable não modificável ou testa se ele pode ser transformado em não modificável.

(Herdado de Freezable)
GetAsFrozen()

Cria uma cópia congelada o Freezable usando valores de propriedade base (não animadas). Já que a cópia está congelada, quaisquer subobjetos congelados são copiados por referência.

(Herdado de Freezable)
GetAsFrozenCore(Freezable)

Torna a instância um clone congelado do Freezable especificado usando valores de propriedade base (não animados).

(Herdado de InputBinding)
GetCurrentValueAsFrozen()

Cria uma cópia congelada do Freezable usando valores de propriedade atuais. Já que a cópia está congelada, quaisquer subobjetos congelados são copiados por referência.

(Herdado de Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Torna a instância atual um clone congelado do Freezable especificado. Se o objeto tiver propriedades de dependência animadas, seus valores animados atuais serão copiados.

(Herdado de InputBinding)
GetHashCode()

Obtém o código hash para esse DependencyObject.

(Herdado de DependencyObject)
GetLocalValueEnumerator()

Cria um enumerador especializado para determinar quais propriedades de dependência têm valores definidos localmente nessa DependencyObject.

(Herdado de DependencyObject)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência nessa instância de um DependencyObject.

(Herdado de DependencyObject)
InvalidateProperty(DependencyProperty)

Reavalia o valor efetivo para a propriedade de dependência especificada.

(Herdado de DependencyObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnChanged()

Chamado quando o objeto Freezable atual é modificado.

(Herdado de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Garante que os ponteiros de contexto apropriados sejam estabelecidos para um membro de dados DependencyObjectType que foi recém-definido.

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

Esse membro dá suporte à infraestrutura de Windows Presentation Foundation (WPF) e não se destina a ser usado diretamente do seu código.

(Herdado de Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Invocado sempre que o valor efetivo de qualquer propriedade de dependência nesse DependencyObject for atualizado. A propriedade de dependência específica que mudou é relatada os dados do evento.

(Herdado de DependencyObject)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Substitui a implementação DependencyObject de OnPropertyChanged(DependencyPropertyChangedEventArgs) para também invocar quaisquer manipuladores Changed em resposta à alteração de uma propriedade de dependência do tipo Freezable.

(Herdado de Freezable)
ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, local, se houver.

(Herdado de DependencyObject)
ReadPreamble()

Garante que o Freezable esteja sendo acessado de um thread válido. Herdeiros do Freezable devem chamar esse método no início de qualquer API que lê membros de dados que não são propriedades de dependência.

(Herdado de Freezable)
SetCurrentValue(DependencyProperty, Object)

Define o valor da propriedade de dependência sem alterar a origem do valor.

(Herdado de DependencyObject)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência, especificada pelo identificador da propriedade de dependência.

(Herdado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Define o valor de uma propriedade de dependência somente leitura, especificada pelo identificador DependencyPropertyKey da propriedade de dependência.

(Herdado de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Retorna um valor que indica se os processos de serialização devem serializar o valor da propriedade de dependência fornecida.

(Herdado de DependencyObject)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
VerifyAccess()

Impõe que o thread de chamada tenha acesso a este DispatcherObject.

(Herdado de DispatcherObject)
WritePostscript()

Aciona o evento Changed para o Freezable e invoca o respectivo método OnChanged(). Classes que derivam de Freezable devem chamar este método no final de qualquer API que modifica os membros de classe que não são armazenados como propriedades de dependência.

(Herdado de Freezable)
WritePreamble()

Verifica se o Freezable não está congelado e está sendo acessado de um contexto de threading válido. Herdeiros do Freezable devem chamar esse método no início de qualquer API que grava em membros de dados que não são propriedades de dependência.

(Herdado de Freezable)

Eventos

Changed

Ocorre quando o Freezable ou um objeto nele contido é modificado.

(Herdado de Freezable)

Aplica-se a

Confira também