Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe InputBinding

 

Data di pubblicazione: ottobre 2016

Rappresenta un'associazione tra un InputGesture e un comando. Il comando è potenzialmente un RoutedCommand.

Spazio dei nomi:   System.Windows.Input
Assembly:  PresentationCore (in 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

NomeDescrizione
System_CAPS_protmethodInputBinding()

Fornisce l'inizializzazione di base per classi derivate da InputBinding.

System_CAPS_pubmethodInputBinding(ICommand, InputGesture)

Inizializza una nuova istanza di InputBinding classe con il comando specificato e il movimento di input.

NomeDescrizione
System_CAPS_pubpropertyCanFreeze

Ottiene un valore che indica se l'oggetto può essere impostato come non modificabile.(Ereditato da Freezable.)

System_CAPS_pubpropertyCommand

Ottiene o imposta l'oggetto ICommand associato a questa associazione di input.

System_CAPS_pubpropertyCommandParameter

Ottiene o imposta i dati specifici del comando per un determinato comando.

System_CAPS_pubpropertyCommandTarget

Ottiene o imposta l'elemento di destinazione del comando.

System_CAPS_pubpropertyDependencyObjectType

Ottiene il DependencyObjectType che esegue il wrapping di CLR tipo di questa istanza. (Ereditato da DependencyObject.)

System_CAPS_pubpropertyDispatcher

Ottiene il Dispatcher questo DispatcherObject è associato.(Ereditato da DispatcherObject.)

System_CAPS_pubpropertyGesture

Ottiene o imposta il InputGesture associata a questa associazione di input.

System_CAPS_pubpropertyIsFrozen

Ottiene un valore che indica se l'oggetto è attualmente modificabile.(Ereditato da Freezable.)

System_CAPS_pubpropertyIsSealed

Ottiene un valore che indica se questa istanza è attualmente sealed (sola lettura).(Ereditato da DependencyObject.)

NomeDescrizione
System_CAPS_pubmethodCheckAccess()

Determina se il thread chiamante ha accesso a questo DispatcherObject.(Ereditato da DispatcherObject.)

System_CAPS_pubmethodClearValue(DependencyProperty)

Cancella il valore locale di una proprietà. La proprietà da cancellare è specificata da un identificatore DependencyProperty.(Ereditato da DependencyObject.)

System_CAPS_pubmethodClearValue(DependencyPropertyKey)

Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare è specificata da un oggetto DependencyPropertyKey.(Ereditato da DependencyObject.)

System_CAPS_pubmethodClone()

Crea un clone modificabile dell'oggetto Freezable, eseguendo copie complete dei valori dell'oggetto. Durante la copia delle proprietà di dipendenza di questo oggetto, questo metodo copia le espressioni (che potrebbero non essere più risolte), ma non le animazioni né i relativi valori correnti.(Ereditato da Freezable.)

System_CAPS_protmethodCloneCore(Freezable)

Copia i valori di base (non animati) delle proprietà dell'oggetto specificato.(Esegue l'override di Freezable.CloneCore(Freezable).)

System_CAPS_pubmethodCloneCurrentValue()

Crea un clone modificabile (copia completa) del Freezable utilizzando i valori correnti.(Ereditato da Freezable.)

System_CAPS_protmethodCloneCurrentValueCore(Freezable)

Copia i valori correnti delle proprietà dell'oggetto specificato.(Esegue l'override di Freezable.CloneCurrentValueCore(Freezable).)

System_CAPS_pubmethodCoerceValue(DependencyProperty)

Assegna forzatamente il valore della proprietà di dipendenza specificata. Questa operazione viene eseguita richiamando qualsiasi funzione CoerceValueCallback specificata nei metadati della proprietà di dipendenza esistente nell'oggetto DependencyObject chiamante.(Ereditato da DependencyObject.)

System_CAPS_protmethodCreateInstance()

Inizializza una nuova istanza della classe Freezable.(Ereditato da Freezable.)

System_CAPS_protmethodCreateInstanceCore()

Crea un'istanza di un InputBinding.(Esegue l'override di Freezable.CreateInstanceCore().)

System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto DependencyObject è equivalente all'oggetto corrente DependencyObject.(Ereditato da DependencyObject.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object.)

System_CAPS_pubmethodFreeze()

Rende non modificabile l'oggetto corrente e ne imposta la proprietà IsFrozen su true.(Ereditato da Freezable.)

System_CAPS_protmethodFreezeCore(Boolean)

Rende il Freezable oggetto o verifica se è possibile renderla non modificabile.(Ereditato da Freezable.)

System_CAPS_pubmethodGetAsFrozen()

Crea una copia di bloccata la Freezable, utilizzando i valori di proprietà di base (non animati). Poiché la copia è bloccata, gli oggetti secondari bloccati vengono copiati per riferimento.(Ereditato da Freezable.)

System_CAPS_protmethodGetAsFrozenCore(Freezable)

Rende l'istanza di un clone dell'oggetto bloccato Freezable utilizzando i valori di proprietà di base (non animati).(Esegue l'override di Freezable.GetAsFrozenCore(Freezable).)

System_CAPS_pubmethodGetCurrentValueAsFrozen()

Crea una copia di bloccata la Freezable utilizzando i valori di proprietà correnti. Poiché la copia è bloccata, gli oggetti secondari bloccati vengono copiati per riferimento.(Ereditato da Freezable.)

System_CAPS_protmethodGetCurrentValueAsFrozenCore(Freezable)

Rende l'istanza corrente un clone bloccato dell'oggetto Freezable specificato. Se l'oggetto ha proprietà di dipendenza animate, i valori animati correnti vengono copiati.(Esegue l'override di Freezable.GetCurrentValueAsFrozenCore(Freezable).)

System_CAPS_pubmethodGetHashCode()

Ottiene un codice hash per l'oggetto DependencyObject.(Ereditato da DependencyObject.)

System_CAPS_pubmethodGetLocalValueEnumerator()

Crea un enumeratore specializzato per determinare quali proprietà di dipendenza presentano valori impostati localmente su questo DependencyObject.(Ereditato da DependencyObject.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_pubmethodGetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di DependencyObject.(Ereditato da DependencyObject.)

System_CAPS_pubmethodInvalidateProperty(DependencyProperty)

Rivaluta il valore effettivo della proprietà di dipendenza specificata(Ereditato da DependencyObject.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_protmethodOnChanged()

Chiamato quando l'oggetto corrente Freezable oggetto viene modificato.(Ereditato da Freezable.)

System_CAPS_protmethodOnFreezablePropertyChanged(DependencyObject, DependencyObject)

Assicura che adatti puntatori del contesto vengono stabiliti per un DependencyObjectType (membro dati) che è appena stato impostato.(Ereditato da Freezable.)

System_CAPS_protmethodOnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Questo membro supporta l'infrastruttura di Windows Presentation Foundation (WPF) e non deve essere usato direttamente dal codice.(Ereditato da Freezable.)

System_CAPS_protmethodOnPropertyChanged(DependencyPropertyChangedEventArgs)

Esegue l'override dell'implementazione di DependencyObject di OnPropertyChanged per richiamare anche eventuali gestori Changed in risposta alla modifica di una proprietà di dipendenza di tipo Freezable.(Ereditato da Freezable.)

System_CAPS_pubmethodReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se presente.(Ereditato da DependencyObject.)

System_CAPS_protmethodReadPreamble()

Assicura che il Freezable si accede da un thread valido. Gli eredi Freezable necessario chiamare questo metodo all'inizio di qualsiasi API che legge i membri di dati che non sono proprietà di dipendenza.(Ereditato da Freezable.)

System_CAPS_pubmethodSetCurrentValue(DependencyProperty, Object)

Imposta il valore di una proprietà di dipendenza senza modificare l'origine del valore.(Ereditato da DependencyObject.)

System_CAPS_pubmethodSetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza, specificato dal relativo identificatore della proprietà di dipendenza.(Ereditato da DependencyObject.)

System_CAPS_pubmethodSetValue(DependencyPropertyKey, Object)

Imposta il valore locale di una proprietà di dipendenza di sola lettura, specificato dall'identificatore DependencyPropertyKey della proprietà di dipendenza.(Ereditato da DependencyObject.)

System_CAPS_protmethodShouldSerializeProperty(DependencyProperty)

Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore della proprietà di dipendenza specificata.(Ereditato da DependencyObject.)

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)

System_CAPS_pubmethodVerifyAccess()

Impone che il thread chiamante abbia accesso a questo DispatcherObject.(Ereditato da DispatcherObject.)

System_CAPS_protmethodWritePostscript()

Genera l'evento Changed per Freezable e richiama il metodo OnChanged. Le classi che derivano da Freezable devono chiamare questo metodo alla fine di qualsiasi API che modifica i membri di classe che non sono archiviati come proprietà di dipendenza.(Ereditato da Freezable.)

System_CAPS_protmethodWritePreamble()

Verifica che il Freezable non sia bloccato e che si accede da un contesto di threading valido. Freezable gli eredi devono chiamare questo metodo all'inizio di qualsiasi API che scrive i membri di dati che non sono proprietà di dipendenza.(Ereditato da Freezable.)

NomeDescrizione
System_CAPS_pubfieldSystem_CAPS_staticCommandParameterProperty

Identifica la proprietà di dipendenza CommandParameter.

System_CAPS_pubfieldSystem_CAPS_staticCommandProperty

Identifica la proprietà di dipendenza Command.

System_CAPS_pubfieldSystem_CAPS_staticCommandTargetProperty

Identifica la proprietà di dipendenza CommandTarget.

NomeDescrizione
System_CAPS_pubeventChanged

Si verifica quando il Freezable o si modifica un oggetto che contiene.(Ereditato da Freezable.)

È possibile specificare che l'input dell'utente richiama un comando creando un InputBinding. Quando l'utente esegue l'input specificato, il ICommand impostata per il Command proprietà viene eseguita.

È possibile specificare che il InputBinding richiama un comando che viene definito su un oggetto tramite la creazione di un'associazione nel Command, CommandParameter, e CommandTarget proprietà. Ciò consente di definire un comando personalizzato e associarlo all'input dell'utente. Per ulteriori informazioni, vedere il secondo esempio nella sezione esempi.

Un InputBinding possono essere definiti in un oggetto specifico o a livello di classe registrando un RegisterClassInputBinding con il CommandManager.

La InputBinding classe non supporta XAML utilizzo perché non espone un costruttore predefinito pubblico (è presente un costruttore predefinito, ma è protetta). Tuttavia, le classi derivate possono esporre un costruttore pubblico e pertanto possibile impostare le proprietà nella classe derivata vengono ereditati da InputBinding con un XAML utilizzo. Due esistente InputBinding-le classi derivate che possono essere creata un'istanza in XAML e impostare le proprietà XAML sono KeyBinding e MouseBinding. La proprietà tipico in WPF della programmazione impostato XAML e prende uno o più InputBinding oggetti come valori il UIElement.InputBindings proprietà.

inputBindingDerivedClass

Una classe derivata di InputBinding che supporta la sintassi degli elementi oggetto, ad esempio KeyBinding o MouseBinding. Vedere la sezione Osservazioni.

Nell'esempio seguente viene illustrato come utilizzare un KeyBinding per associare un KeyGesture per il Open comando. Quando viene eseguita la combinazione di tasti, viene richiamato il comando Apri.

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

Negli esempi seguenti viene illustrano come associare un comando personalizzato a InputBinding oggetti. Questi esempi è creare un'applicazione che consente all'utente di modificare il colore di sfondo effettuando una delle seguenti operazioni:

  • Facendo clic su un pulsante.

  • Premere CTRL + C.

  • Facendo clic su un StackPanel (all'esterno di ListBox).

Nel primo esempio viene creata una classe denominata SimpleDelegateCommand. Questa classe accetta un delegato in modo che l'oggetto crea il comando è possibile definire l'azione che si verifica quando viene eseguito il comando. SimpleDelegateCommand definisce inoltre le proprietà che specificano quali da tastiera e mouse input richiama il comando. GestureKey e GestureModifier specificare l'input da tastiera; MouseGesture Specifica l'input 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;
}

Nell'esempio seguente crea e inizializza il ColorChangeCommand, ovvero un SimpleDelegateCommand. Viene inoltre definito il metodo che viene eseguito quando il comando viene richiamato e imposta il GestureKey, GestureModifier, e MouseGesture proprietà. Un'applicazione chiama il InitializeCommand metodo quando il programma viene avviato, ad esempio il costruttore di 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;
    }
}

Infine, nell'esempio seguente viene creata l'interfaccia utente. Nell'esempio viene aggiunto un KeyBinding e MouseBinding per un StackPanel che contiene un Button e ListBox. Quando l'utente seleziona un elemento di ListBox, egli può modificare il colore di sfondo sul colore selezionato. In ogni caso, il CommandParameter proprietà è associata all'elemento selezionato nel ListBox, e il Command proprietà è associata ai ColorChangeCommand. Il KeyBinding.Key, KeyBinding.Modifiers, e MouseBinding.MouseAction sono associate alle proprietà corrispondenti 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>

.NET Framework
Disponibile da 3.0

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: