InputBinding Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente une liaison entre un InputGesture et une commande. La commande peut être un RoutedCommand.
public ref class InputBinding : System::Windows::DependencyObject, System::Windows::Input::ICommandSource
public ref class InputBinding : System::Windows::Freezable, System::Windows::Input::ICommandSource
public class InputBinding : System.Windows.DependencyObject, System.Windows.Input.ICommandSource
public class InputBinding : System.Windows.Freezable, System.Windows.Input.ICommandSource
type InputBinding = class
inherit DependencyObject
interface ICommandSource
type InputBinding = class
inherit Freezable
interface ICommandSource
Public Class InputBinding
Inherits DependencyObject
Implements ICommandSource
Public Class InputBinding
Inherits Freezable
Implements ICommandSource
- Héritage
- Héritage
- Dérivé
- Implémente
Exemples
L’exemple suivant montre comment utiliser un KeyBinding pour lier un KeyGesture à la Open commande . Lorsque le mouvement de clé est effectué, la commande Open est appelée.
<Window.InputBindings>
<KeyBinding Key="B"
Modifiers="Control"
Command="ApplicationCommands.Open" />
</Window.InputBindings>
Les exemples suivants montrent comment lier une commande personnalisée à des InputBinding objets. Ces exemples créent une application qui permet à l’utilisateur de modifier la couleur d’arrière-plan en effectuant l’une des actions suivantes :
Cliquez sur un bouton.
Appuyez sur Ctrl+C.
Cliquez avec le bouton droit sur un StackPanel (en dehors de ).ListBox
Le premier exemple crée une classe nommée SimpleDelegateCommand
. Cette classe accepte un délégué afin que l’objet qui crée la commande puisse définir l’action qui se produit lors de l’exécution de la commande.
SimpleDelegateCommand
définit également des propriétés qui spécifient quelle entrée de clé et de souris appelle la commande.
GestureKey
et GestureModifier
spécifiez l’entrée du clavier ; MouseGesture
spécifie l’entrée de la souris.
// 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;
}
' Create a class that implements ICommand and accepts a delegate.
Public Class SimpleDelegateCommand
Implements ICommand
' Specify the keys and mouse actions that invoke the command.
Private _GestureKey As Key
Private _GestureModifier As ModifierKeys
Private _MouseGesture As MouseAction
Public Property GestureKey() As Key
Get
Return _GestureKey
End Get
Set(ByVal value As Key)
_GestureKey = value
End Set
End Property
Public Property GestureModifier() As ModifierKeys
Get
Return _GestureModifier
End Get
Set(ByVal value As ModifierKeys)
_GestureModifier = value
End Set
End Property
Public Property MouseGesture() As MouseAction
Get
Return _MouseGesture
End Get
Set(ByVal value As MouseAction)
_MouseGesture = value
End Set
End Property
Private _executeDelegate As Action(Of Object)
Public Sub New(ByVal executeDelegate As Action(Of Object))
_executeDelegate = executeDelegate
End Sub
Public Sub Execute(ByVal parameter As Object) _
Implements ICommand.Execute
_executeDelegate(parameter)
End Sub
Public Function CanExecute(ByVal parameter As Object) As Boolean _
Implements ICommand.CanExecute
Return True
End Function
Public Event CanExecuteChanged As EventHandler _
Implements ICommand.CanExecuteChanged
End Class
L’exemple suivant crée et initialise le ColorChangeCommand
, qui est un SimpleDelegateCommand
. L’exemple définit également la méthode qui s’exécute lorsque la commande est appelée et définit les GestureKey
propriétés , GestureModifier
et MouseGesture
. Une application appelle la InitializeCommand
méthode au début du programme, par exemple dans le constructeur d’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;
}
}
Public ReadOnly Property ChangeColorCommand() As SimpleDelegateCommand
Get
Return _changeColorCommand
End Get
End Property
Private _changeColorCommand As SimpleDelegateCommand
Private originalColor As Brush, alternateColor As Brush
Private Sub InitializeCommand()
originalColor = Me.Background
_changeColorCommand = New SimpleDelegateCommand(Function(x) Me.ChangeColor(x))
DataContext = Me
_changeColorCommand.GestureKey = Key.C
_changeColorCommand.GestureModifier = ModifierKeys.Control
_changeColorCommand.MouseGesture = MouseAction.RightClick
End Sub
' Switch the Background color between
' the original and selected color.
Private Function ChangeColor(ByVal colorString As Object) As Integer
If colorString Is Nothing Then
Return 0
End If
Dim newColor As Color = DirectCast(ColorConverter.ConvertFromString(DirectCast(colorString, [String])), Color)
alternateColor = New SolidColorBrush(newColor)
If Brush.Equals(Me.Background, originalColor) Then
Me.Background = alternateColor
Else
Me.Background = originalColor
End If
Return 0
End Function
Enfin, l’exemple suivant crée l’interface utilisateur. L’exemple ajoute un KeyBinding et un MouseBinding à un StackPanel qui contient un Button et un ListBox. Lorsque l’utilisateur sélectionne un élément dans , ListBoxil peut modifier la couleur de l’arrière-plan en la couleur sélectionnée. Dans chaque cas, la CommandParameter
propriété est liée à l’élément sélectionné dans le ListBox, et la Command
propriété est liée à .ColorChangeCommand
Les KeyBinding.Keypropriétés , KeyBinding.Modifierset MouseBinding.MouseAction sont liées aux propriétés correspondantes sur la SimpleDelegateCommand
classe .
<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>
Remarques
Vous pouvez spécifier que l’entrée utilisateur appelle une commande en créant un InputBinding. Lorsque l’utilisateur effectue l’entrée spécifiée, le ICommand qui est défini sur la Command propriété est exécuté.
Vous pouvez spécifier que appelle InputBinding une commande définie sur un objet en créant une liaison sur les Commandpropriétés , CommandParameteret CommandTarget . Cela vous permet de définir une commande personnalisée et de l’associer à une entrée utilisateur. Pour plus d’informations, consultez le deuxième exemple de la section Exemples.
Un InputBinding peut être défini sur un objet spécifique ou au niveau de la classe en inscrivant un RegisterClassInputBinding auprès de CommandManager.
La InputBinding classe elle-même ne prend pas en charge l’utilisation de XAML, car elle n’expose pas de constructeur public sans paramètre (il existe un constructeur sans paramètre, mais il est protégé). Toutefois, les classes dérivées peuvent exposer un constructeur public et peuvent donc définir des propriétés sur la classe dérivée héritées avec InputBinding une utilisation XAML. Deux classes dérivées existantes InputBindingqui peuvent être instanciées en XAML et qui peuvent définir des propriétés en XAML sont KeyBinding et MouseBinding. La propriété standard dans la programmation WPF qui est définie en XAML et prend un ou plusieurs InputBinding objets comme valeurs est la UIElement.InputBindings propriété .
Utilisation d'éléments objet XAML
< inputBindingDerivedClass.../>
Valeurs XAML
inputBindingDerivedClass
Classe dérivée de qui prend en charge la syntaxe d’élément InputBinding d’objet, telle que KeyBinding ou MouseBinding. Consultez la section Notes.
Constructeurs
InputBinding() |
Fournit l'initialisation de base pour les classes dérivées de InputBinding. |
InputBinding(ICommand, InputGesture) |
Initialise une nouvelle instance de la classe InputBinding avec la commande et le mouvement d'entrée spécifiés. |
Champs
CommandParameterProperty |
Identifie la propriété de dépendance CommandParameter. |
CommandProperty |
Identifie la propriété de dépendance Command. |
CommandTargetProperty |
Identifie la propriété de dépendance CommandTarget. |
Propriétés
CanFreeze |
Obtient une valeur qui indique si l’objet peut être rendu non modifiable. (Hérité de Freezable) |
Command |
Obtient ou définit le ICommand associé à cette liaison d’entrée. |
CommandParameter |
Obtient ou définit les données spécifiques à la commande pour une commande particulière. |
CommandTarget |
Obtient ou définit l'élément cible de la commande. |
DependencyObjectType |
Obtient le DependencyObjectType qui encapsule le type CLR de cette instance. (Hérité de DependencyObject) |
Dispatcher |
Obtient le Dispatcher associé à DispatcherObject. (Hérité de DispatcherObject) |
Gesture |
Obtient ou définit le InputGesture associé à cette liaison d’entrée. |
IsFrozen |
Obtient une valeur qui indique si l’objet est actuellement modifiable. (Hérité de Freezable) |
IsSealed |
Récupère une valeur qui indique si cette instance est actuellement sealed (en lecture seule). (Hérité de DependencyObject) |
Méthodes
CheckAccess() |
Détermine si le thread appelant a accès à ce DispatcherObject. (Hérité de DispatcherObject) |
ClearValue(DependencyProperty) |
Efface la valeur locale d’une propriété. La propriété à effacer est spécifiée par un identificateur DependencyProperty. (Hérité de DependencyObject) |
ClearValue(DependencyPropertyKey) |
Efface la valeur locale d’une propriété en lecture seule. La propriété à effacer est spécifiée par DependencyPropertyKey. (Hérité de DependencyObject) |
Clone() |
Crée un clone modifiable de Freezable, en créant des copies complètes des valeurs de l’objet. Lors de la copie des propriétés de dépendance de l’objet, cette méthode copie les expressions (qui peuvent ne plus se résoudre), mais pas les animations ni leurs valeurs actuelles. (Hérité de Freezable) |
CloneCore(Freezable) |
Copie les valeurs de base (non animées) des propriétés de l'objet spécifié. |
CloneCurrentValue() |
Crée un clone modifiable (copie complète) de Freezable en utilisant ses valeurs actuelles. (Hérité de Freezable) |
CloneCurrentValueCore(Freezable) |
Copie les valeurs actuelles des propriétés de l'objet spécifié. |
CoerceValue(DependencyProperty) |
Convertit la valeur de la propriété de dépendance spécifiée. Pour cela, on appelle toute fonction CoerceValueCallback spécifiée dans les métadonnées de propriété pour la propriété de dépendance telle qu’elle existe sur le DependencyObject appelant. (Hérité de DependencyObject) |
CreateInstance() |
Initialise une nouvelle instance de la classe Freezable. (Hérité de Freezable) |
CreateInstanceCore() |
Crée une instance de InputBinding. |
Equals(Object) |
Détermine si un DependencyObject fourni est équivalent au DependencyObject réel. (Hérité de DependencyObject) |
Freeze() |
Rend l’objet actif non modifiable et attribue à sa propriété IsFrozen la valeur |
FreezeCore(Boolean) |
Rend l'objet Freezable non modifiable ou vérifie si celui-ci peut être rendu non modifiable ou pas. (Hérité de Freezable) |
GetAsFrozen() |
Crée une copie figée de Freezable, à l'aide des valeurs de propriété (non-animées) de base. Étant donné que la copie est figée, tous les sous-objets figés sont copiés par référence. (Hérité de Freezable) |
GetAsFrozenCore(Freezable) |
Convertit l'instance en clone figé du Freezable spécifié à l'aide des valeurs de propriétés (non animées) de base. |
GetCurrentValueAsFrozen() |
Crée une copie figée de Freezable à l'aide des valeurs de propriété actuelles. Étant donné que la copie est figée, tous les sous-objets figés sont copiés par référence. (Hérité de Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
Convertit l’instance actuelle en un clone figé du Freezable spécifié. Si l’objet a des propriétés de dépendance animées, leurs valeurs animées actuelles sont copiées. |
GetHashCode() |
Obtient un code de hachage pour ce DependencyObject. (Hérité de DependencyObject) |
GetLocalValueEnumerator() |
Crée un énumérateur spécialisé pour déterminer quelles propriétés de dépendance ont des valeurs définies localement sur ce DependencyObject. (Hérité de DependencyObject) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
GetValue(DependencyProperty) |
Retourne la valeur effective actuelle d’une propriété de dépendance sur cette instance d’un DependencyObject. (Hérité de DependencyObject) |
InvalidateProperty(DependencyProperty) |
Réévalue la valeur effective de la propriété de dépendance spécifiée. (Hérité de DependencyObject) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
OnChanged() |
Appelé lorsque l’objet Freezable actuel est modifié. (Hérité de Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Garantit que les pointeurs de contexte appropriés sont établis pour un membre de données de type DependencyObjectType qui vient juste d'être défini. (Hérité de Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Ce membre prend en charge l’infrastructure Windows Presentation Foundation (WPF) et n’est pas destiné à être utilisé directement à partir de votre code. (Hérité de Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Méthode appelée chaque fois que la valeur effective d’une propriété de dépendance sur ce DependencyObject a été mise à jour. La propriété de dépendance spécifique qui a changé est signalée dans les données d’événement. (Hérité de DependencyObject) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Substitue l’implémentation DependencyObject de OnPropertyChanged(DependencyPropertyChangedEventArgs) pour appeler également tous les gestionnaires Changed en réponse à une propriété de dépendance variable de type Freezable. (Hérité de Freezable) |
ReadLocalValue(DependencyProperty) |
Retourne la valeur locale d’une propriété de dépendance, si elle existe. (Hérité de DependencyObject) |
ReadPreamble() |
Garantit que Freezable est accessible à partir d'un thread valide. Les héritiers de Freezable doivent appeler cette méthode au début de toute API lisant les membres de données qui ne sont pas des propriétés de dépendance. (Hérité de Freezable) |
SetCurrentValue(DependencyProperty, Object) |
Définit la valeur d’une propriété de dépendance sans modifier sa valeur source. (Hérité de DependencyObject) |
SetValue(DependencyProperty, Object) |
Définit la valeur locale d’une propriété de dépendance, spécifiée par son identificateur de propriété de dépendance. (Hérité de DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Définit la valeur locale d’une propriété de dépendance en lecture seule, spécifiée par l’identificateur DependencyPropertyKey de la propriété de dépendance. (Hérité de DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Retourne une valeur qui indique si les processus de sérialisation doivent sérialiser la valeur de la propriété de dépendance fournie. (Hérité de DependencyObject) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
VerifyAccess() |
Garantit que le thread appelant a accès à DispatcherObject. (Hérité de DispatcherObject) |
WritePostscript() |
Déclenche l’événement Changed pour le Freezable et appelle sa méthode OnChanged(). Les classes qui dérivent de Freezable doivent appeler cette méthode à la fin de toute API qui modifie des membres de classe qui ne sont pas stockés en tant que propriétés de dépendance. (Hérité de Freezable) |
WritePreamble() |
Vérifie que le Freezable n'est pas figé et que son accès s'effectue à partir d'un contexte de thread valide. Les héritiers de Freezable doivent appeler cette méthode au début de toute API écrivant dans les membres de données qui ne sont pas des propriétés de dépendance. (Hérité de Freezable) |
Événements
Changed |
Se produit lorsque Freezable ou un objet qu'il contient est modifié. (Hérité de Freezable) |