Compartilhar via


KeyBinding Classe

Definição

Associa um KeyGesture a uma RoutedCommand (ou outra ICommand implementação).

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 adiciona-o InputBindingCollection à 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 comando é 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 a Visão geral do comando.

Com exceção das chaves de função e das teclas de teclado numéricas, um válido KeyGesture deve conter exatamente uma Key e uma 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 gesto associado inválido e KeyBinding inválido KeyGesture por meio de XAML ou código. Por exemplo, não há nenhuma 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. Esse tipo KeyBinding nunca tentará invocar seu comando associado.

Ao definir um KeyBinding XAML (Extensible Application Markup Language) há duas maneiras de especificar o KeyGesture. A primeira maneira de estabelecer um KeyBinding em 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 são KeyGesture equivalentes e modificar o mesmo objeto subjacente, mas haverá um conflito se ambos forem usados. No caso em que os Keyatributos , e , Modifierse Gesture todos os atributos estão definidos, o atributo que é definido por último será usado para o KeyGesture. Você pode ter situações em que, por exemplo, um Key conjunto por último substituirá apenas o componente Chave 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 KeyBinding .

Construtores

Nome Description
KeyBinding()

Inicializa uma nova instância da classe KeyBinding.

KeyBinding(ICommand, Key, ModifierKeys)

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

KeyBinding(ICommand, KeyGesture)

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

Campos

Nome Description
KeyProperty

Identifica a Key propriedade de dependência.

ModifiersProperty

Identifica a Modifiers propriedade de dependência.

Propriedades

Nome Description
CanFreeze

Obtém um valor que indica se o objeto pode ser tornado inmodificável.

(Herdado de Freezable)
Command

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

(Herdado de InputBinding)
CommandParameter

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

(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 que DispatcherObject está associado.

(Herdado de DispatcherObject)
Gesture

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

IsFrozen

Obtém um valor que indica se o objeto é modificável no momento.

(Herdado de Freezable)
IsSealed

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

(Herdado de DependencyObject)
Key

Obtém ou define o Key dos associados KeyGesture a isso KeyBinding.

Modifiers

Obtém ou define o ModifierKeys dos associados KeyGesture a isso KeyBinding.

Métodos

Nome Description
CheckAccess()

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

(Herdado de DispatcherObject)
ClearValue(DependencyProperty)

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

(Herdado de DependencyObject)
ClearValue(DependencyPropertyKey)

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

(Herdado de DependencyObject)
Clone()

Cria um clone modificável do Freezable. fazendo cópias profundas dos valores do objeto. Ao copiar as propriedades de dependência do objeto, esse método copia expressões (que podem não ser mais resolvidas), mas não animações ou 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 uso de Freezable seus valores atuais.

(Herdado de Freezable)
CloneCurrentValueCore(Freezable)

Copia os valores atuais das propriedades do objeto especificado.

(Herdado de InputBinding)
CoerceValue(DependencyProperty)

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

(Herdado de DependencyObject)
CreateInstance()

Inicializa uma nova instância da classe Freezable.

(Herdado de Freezable)
CreateInstanceCore()

Cria uma instância de um KeyBinding.

Equals(Object)

Determina se um fornecido DependencyObject é equivalente ao atual DependencyObject.

(Herdado de DependencyObject)
Freeze()

Torna o objeto atual inmodificável e define sua IsFrozen propriedade como true.

(Herdado de Freezable)
FreezeCore(Boolean)

Torna o Freezable objeto inmodificável ou testa se ele pode se tornar não modificável.

(Herdado de Freezable)
GetAsFrozen()

Cria uma cópia congelada dos valores de Freezablepropriedade base (não animados). Como a cópia está congelada, todos os sub-objetos congelados são copiados por referência.

(Herdado de Freezable)
GetAsFrozenCore(Freezable)

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

(Herdado de InputBinding)
GetCurrentValueAsFrozen()

Cria uma cópia congelada do Freezable uso de valores de propriedade atuais. Como a cópia está congelada, todos os sub-objetos congelados são copiados por referência.

(Herdado de Freezable)
GetCurrentValueAsFrozenCore(Freezable)

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

(Herdado de InputBinding)
GetHashCode()

Obtém um código hash para isso DependencyObject.

(Herdado de DependencyObject)
GetLocalValueEnumerator()

Cria um enumerador especializado para determinar quais propriedades de dependência têm valores definidos localmente.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 nesta instância de um DependencyObject.

(Herdado de DependencyObject)
InvalidateProperty(DependencyProperty)

Reavalia o valor efetivo da propriedade de dependência especificada.

(Herdado de DependencyObject)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
OnChanged()

Chamado quando o objeto atual Freezable é modificado.

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

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

(Herdado de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Garante que os ponteiros de contexto apropriados sejam estabelecidos para um DependencyObjectType membro de dados que acabou de ser definido.

(Herdado de Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Invocado sempre que o valor efetivo de qualquer propriedade de dependência tiver DependencyObject sido atualizado. A propriedade de dependência específica que foi alterada é relatada nos dados do evento.

(Herdado de DependencyObject)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

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

(Herdado de Freezable)
ReadLocalValue(DependencyProperty)

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

(Herdado de DependencyObject)
ReadPreamble()

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

(Herdado de Freezable)
SetCurrentValue(DependencyProperty, Object)

Define o valor de uma propriedade de dependência sem alterar sua fonte de valor.

(Herdado de DependencyObject)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência, especificada por seu identificador de propriedade de dependência.

(Herdado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Define o valor local de uma propriedade de dependência somente leitura, especificada pelo DependencyPropertyKey identificador 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 isso DispatcherObject.

(Herdado de DispatcherObject)
WritePostscript()

Aciona o Changed evento para o Freezable método e invoca seu OnChanged() método. Classes das quais derivam Freezable devem chamar esse método no final de qualquer API que modifique os membros da 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 se ele está sendo acessado de um contexto de threading válido. Freezable os herdadores 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

Nome Description
Changed

Ocorre quando o objeto ou um Freezable objeto que ele contém é modificado.

(Herdado de Freezable)

Aplica-se a

Confira também