Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe InputBinding

Rappresenta l'associazione tra InputGesture e un comando. il comando è potenzialmente a RoutedCommand.

Spazio dei nomi:  System.Windows.Input
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS per XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public class InputBinding : Freezable, 
	ICommandSource

Valor XAML

inputBindingDerivedClass

una classe derivata di InputBinding la sintassi per elementi oggetto di supporta, ad esempio KeyBinding o MouseBinding. Vedere le note.

Il tipo InputBinding espone i seguenti membri.

  NomeDescrizione
Metodo protettoInputBinding()fornisce l'inizializzazione di base per le classi derivate da InputBinding.
Metodo pubblicoInputBinding(ICommand, InputGesture)Inizializza una nuova istanza di InputBinding classe con il comando e la modalità di input specificati.
In alto

  NomeDescrizione
Proprietà pubblicaCanFreezeOttiene un valore che indica se l'oggetto può essere reso immodificabile. (Ereditato da Freezable)
Proprietà pubblicaCommandottiene o imposta ICommand associato a questa associazione di input.
Proprietà pubblicaCommandParameterOttiene o imposta i dati comando-specifici per un determinato comando.
Proprietà pubblicaCommandTargetOttiene o imposta l'elemento di destinazione comando.
Proprietà pubblicaDependencyObjectType Ottiene il DependencyObjectType che esegue il wrapping CLR del tipo dell'istanza. (Ereditato da DependencyObject)
Proprietà pubblicaDispatcher Ottiene l'oggetto Dispatcher al quale l'oggetto DispatcherObject è associato. (Ereditato da DispatcherObject)
Proprietà pubblicaGestureottiene o imposta InputGesture associato a questa associazione di input.
Proprietà pubblicaIsFrozenottiene un valore che indica se l'oggetto è attualmente modificabile. (Ereditato da Freezable)
Proprietà pubblicaIsSealedOttiene un valore che indica se l'istanza attualmente è sealed (sola lettura). (Ereditato da DependencyObject)
In alto

  NomeDescrizione
Metodo pubblicoCheckAccess Determina se il thread chiamante ha accesso a questo DispatcherObject. (Ereditato da DispatcherObject)
Metodo pubblicoClearValue(DependencyProperty) Cancella il valore locale di una proprietà. La proprietà da cancellare viene specificata da un identificatore DependencyProperty. (Ereditato da DependencyObject)
Metodo pubblicoClearValue(DependencyPropertyKey)Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare viene specificata da un oggetto DependencyPropertyKey. (Ereditato da DependencyObject)
Metodo pubblicoCloneViene creato un duplicato modificabile di Freezable, apportando le copie complete dei valori dell'oggetto. Nel copiare le proprietà di dipendenza dell'oggetto, questo metodo consente di copiare le espressioni (non potranno più risoluzione) ma non animazioni o i relativi valori correnti. (Ereditato da Freezable)
Metodo protettoCloneCoreCopia i valori (non animati) di base delle proprietà dell'oggetto specificato. (Esegue l'override di Freezable.CloneCore(Freezable)).
Metodo pubblicoCloneCurrentValueViene creato un duplicato modificabile (copia completa) di Freezable utilizzando i valori correnti. (Ereditato da Freezable)
Metodo protettoCloneCurrentValueCoreCopia i valori correnti delle proprietà dell'oggetto specificato. (Esegue l'override di Freezable.CloneCurrentValueCore(Freezable)).
Metodo pubblicoCoerceValueAssegna il valore del specificato proprietà di dipendenza. Questa operazione viene eseguita utilizzando qualsiasi CoerceValueCallback funzione specificata nei metadati della proprietà per la proprietà di dipendenza come esiste nel chiamare DependencyObject. (Ereditato da DependencyObject)
Metodo protettoCreateInstanceInizializza una nuova istanza di Freezable classe. (Ereditato da Freezable)
Metodo protettoCreateInstanceCoreCrea un'istanza di un oggetto InputBinding. (Esegue l'override di Freezable.CreateInstanceCore()).
Metodo pubblicoEquals Determina se il DependencyObject fornito equivale al DependencyObject corrente. (Ereditato da DependencyObject)
Metodo protettoFinalize 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)
Metodo pubblicoFreeze()Rende l'oggetto corrente immodificabile e imposta il proprio IsFrozen proprietà di true. (Ereditato da Freezable)
Metodo protettoFreezeCorerende Freezable l'oggetto imposta o i test se può essere reso immodificabile. (Ereditato da Freezable)
Metodo pubblicoGetAsFrozenCrea una copia di bloccata Freezable, utilizzando i valori della proprietà (non animati) di base. Poiché la copia è bloccata, tutti gli oggetti subordinati bloccati vengono copiati per riferimento. (Ereditato da Freezable)
Metodo protettoGetAsFrozenCoreConsente all'istanza un clone bloccato l'oggetto specificato Freezable utilizzando i valori delle proprietà (non animati) di base. (Esegue l'override di Freezable.GetAsFrozenCore(Freezable)).
Metodo pubblicoGetCurrentValueAsFrozenCrea una copia di bloccata Freezable utilizzo dei valori delle proprietà correnti. Poiché la copia è bloccata, tutti gli oggetti subordinati bloccati vengono copiati per riferimento. (Ereditato da Freezable)
Metodo protettoGetCurrentValueAsFrozenCoreConsente all'istanza corrente un clone bloccato l'oggetto specificato Freezable. Se l'oggetto dispone di proprietà di dipendenza animata, i valori animati correnti vengono copiati. (Esegue l'override di Freezable.GetCurrentValueAsFrozenCore(Freezable)).
Metodo pubblicoGetHashCodeOttiene un oggetto codice hash per questo DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoGetLocalValueEnumeratorCrea un enumeratore specializzato per determinare quali proprietà di dipendenza in locale è impostato stima su questa DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoGetValueRestituisce il valore effettivo corrente di un oggetto proprietà di dipendenza in questa istanza di un oggetto DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoInvalidatePropertyRivaluta il valore effettivo per la proprietà di dipendenza (Ereditato da DependencyObject)
Metodo protettoMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protettoOnChangedchiamato quando la corrente Freezable l'oggetto viene modificato. (Ereditato da Freezable)
Metodo protettoOnFreezablePropertyChanged(DependencyObject, DependencyObject)Assicura che i puntatori appropriati di contesto sono definiti per un oggetto DependencyObjectType membro dati che è stato impostato solo. (Ereditato da Freezable)
Metodo protettoOnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)questo membro supporta Windows Presentation Foundation (WPF) l'infrastruttura e non deve essere utilizzata direttamente dal codice. (Ereditato da Freezable)
Metodo protettoOnPropertyChangedesegue l'override DependencyObject implementazione di OnPropertyChanged per richiamare anche qualsiasi Changed gestori in risposta a modificare proprietà di dipendenza di tipo Freezable. (Ereditato da Freezable)
Metodo pubblicoReadLocalValueRestituisce il valore locale di un oggetto proprietà di dipendenza, se esiste. (Ereditato da DependencyObject)
Metodo protettoReadPreambleAssicurarsi che Freezable accede da un thread valido. Eredi Freezable deve chiamare questo metodo all'inizio di ogni API che legge i membri dati non sono proprietà di dipendenza. (Ereditato da Freezable)
Metodo pubblicoSetCurrentValueImposta il valore di un oggetto proprietà di dipendenza senza modificarne il codice sorgente di valore. (Ereditato da DependencyObject)
Metodo pubblicoSetValue(DependencyProperty, Object)Imposta il valore locale di un oggetto proprietà di dipendenza, specificato dal relativo identificatore di proprietà di dipendenza. (Ereditato da DependencyObject)
Metodo pubblicoSetValue(DependencyPropertyKey, Object)Imposta il valore locale di un oggetto di sola lettura proprietà di dipendenza, specificato da DependencyPropertyKey identificatore della proprietà di dipendenza. (Ereditato da DependencyObject)
Metodo protettoShouldSerializePropertyRestituisce un valore che indica se i processi di serializzazione deve serializzare il valore fornito per proprietà di dipendenza. (Ereditato da DependencyObject)
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblicoVerifyAccess Impone che il thread chiamante abbia accesso a questo DispatcherObject. (Ereditato da DispatcherObject)
Metodo protettoWritePostscriptGenerato Changed evento per Freezable e richiama relativi OnChanged metodo. Classi che derivano da Freezable deve chiamare questo metodo alla fine di ogni API che modifica i membri della classe che non sono archiviati come proprietà di dipendenza. (Ereditato da Freezable)
Metodo protettoWritePreambleVerifica che Freezable non è bloccato e che accede da un contesto valido di threading. Freezable gli eredi devono chiamare questo metodo all'inizio di ogni API che scrive nei membri dati non sono proprietà di dipendenza. (Ereditato da Freezable)
In alto

  NomeDescrizione
Evento pubblicoChangedsi verifica quando Freezable o un oggetto contenente viene modificato. (Ereditato da Freezable)
In alto

  NomeDescrizione
Campo pubblicoMembro staticoCommandParameterPropertyidentifica CommandParameter proprietà di dipendenza.
Campo pubblicoMembro staticoCommandPropertyidentifica Command proprietà di dipendenza.
Campo pubblicoMembro staticoCommandTargetPropertyidentifica CommandTarget proprietà di dipendenza.
In alto

È possibile specificare che l'input utente richiama un comando creando un oggetto InputBinding. quando l'utente esegue l'input specificato, ICommand ciò è impostato su Command la proprietà viene eseguita.

È possibile specificare che InputBinding richiama un comando definito su un oggetto creando un'associazione in Command, CommandParametere CommandTarget proprietà. Ciò consente di definire un comando personalizzato e per associarlo all'input. Per ulteriori informazioni, vedere il secondo esempio della sezione di esempi.

InputBinding può essere definito in un oggetto specifico o a livello di classe registrando un oggetto RegisterClassInputBinding con CommandManager.

InputBinding la classe non supporta XAML l'utilizzo perché non espone un costruttore pubblico predefinito (disponibile un costruttore predefinito, ma è protetto). Tuttavia, le classi derivate possono esporre un costruttore pubblico e pertanto possono impostare le proprietà nella classe derivata da cui vengono ereditati InputBinding con XAML utilizzo. Due esistenti InputBinding- classi derivate che è possibile creare un'istanza in XAML e può impostare le proprietà di XAML essere KeyBinding e MouseBinding. La proprietà tipica in WPF la programmazione appropriata viene impostata in XAML e accetta uno o più InputBinding gli oggetti come valori è UIElement.InputBindings proprietà.

Nell'esempio seguente viene illustrato come utilizzare un oggetto KeyBinding per creare un'associazione KeyGesture in Open comando. Quando il movimento principale viene eseguita, il comando aperto viene richiamato.


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


Negli esempi seguenti viene illustrato come associare un comando personalizzato a InputBinding oggetti. In questi esempi viene creata un'applicazione che consente all'utente di modificare il colore di sfondo eseguendo una delle seguenti azioni:

  • Fare clic su un pulsante.

  • premere CTRL+C.

  • Fare clic con il pulsante destro del mouse su StackPanel (al di fuori di ListBox).

Il primo esempio viene creata una classe denominata SimpleDelegateCommand. Questa classe accetta un delegato in modo da poter definire l'oggetto che crea il comando l'azione che si verifica quando il comando viene eseguito. SimpleDelegateCommand definisce inoltre proprietà che specificano la chiave e input del mouse richiama il comando. GestureKey e GestureModifier specificare l'input della 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 viene creato e inizializzato ColorChangeCommand, che costituisce un' SimpleDelegateCommand. Viene inoltre definito il metodo che viene eseguito quando il comando viene richiamato e imposta GestureKey, GestureModifiere MouseGesture proprietà. un'applicazione chiamerebbe InitializeCommand metodo quando in viene avviata di programma, ad esempio nel costruttore di un oggetto 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. Viene aggiunto un oggetto KeyBinding e MouseBinding a un oggetto StackPanel che contiene un oggetto Button e ListBox. quando l'utente seleziona un elemento in ListBox, due campi possibile modificare il colore dello sfondo nel colore selezionato. in ogni caso, CommandParameter la proprietà viene associata all'elemento selezionato in ListBoxe Command la proprietà è associata a ColorChangeCommand. KeyBinding.Key , KeyBinding.Modifierse MouseBinding.MouseAction le proprietà sono associate alle proprietà corrispondenti su 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

Supportato in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro pubblico static (Shared in Visual Basic) di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft