(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

InputBinding-Klasse

Stellt eine Bindung zwischen einer InputGesture und einem Befehl dar. Der Befehl ist potenziell ein RoutedCommand.

Namespace:  System.Windows.Input
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public class InputBinding : Freezable, 
	ICommandSource
<inputBindingDerivedClass…/>

XAML-Werte

inputBindingDerivedClass

Eine abgeleitete Klasse von InputBinding, die die Objektelementsyntax unterstützt, z. B. KeyBinding oder MouseBinding. Siehe Hinweise.

Der InputBinding-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Geschützte MethodeInputBinding()Stellt die Basisinitialisierung für von InputBinding abgeleitete Klassen bereit.
Öffentliche MethodeInputBinding(ICommand, InputGesture)Initialisiert mit dem angegebenen Befehl und der Eingabestiftbewegung eine neue Instanz der InputBinding-Klasse.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftCanFreezeRuft einen Wert ab, der angibt, ob das Objekt als nicht änderbar festgelegt werden kann. (Von Freezable geerbt.)
Öffentliche EigenschaftCommandRuft den dieser Eingabebindung zugeordneten ICommand ab oder legt diesen fest.
Öffentliche EigenschaftCommandParameterRuft die befehlsspezifischen Daten für einen bestimmten Befehl ab oder legt diese fest.
Öffentliche EigenschaftCommandTargetRuft das Zielelement des Befehls ab oder legt dieses fest.
Öffentliche EigenschaftDependencyObjectTypeRuft den DependencyObjectType ab, der den CLR-Typ dieser Instanz umschließt.  (Von DependencyObject geerbt.)
Öffentliche EigenschaftDispatcherRuft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist. (Von DispatcherObject geerbt.)
Öffentliche EigenschaftGestureRuft den dieser Eingabebindung zugeordneten InputGesture ab oder legt diesen fest.
Öffentliche EigenschaftIsFrozenRuft einen Wert ab, der angibt, ob das Objekt gegenwärtig änderbar ist. (Von Freezable geerbt.)
Öffentliche EigenschaftIsSealedRuft einen Wert ab, der angibt, ob diese Instanz derzeit versiegelt (schreibgeschützt) ist. (Von DependencyObject geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeCheckAccessBestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.)
Öffentliche MethodeClearValue(DependencyProperty)Löscht den lokalen Wert einer Eigenschaft. Die zu löschende Eigenschaft wird mit einem DependencyProperty-Bezeichner angegeben. (Von DependencyObject geerbt.)
Öffentliche MethodeClearValue(DependencyPropertyKey)Löscht den lokalen Wert einer schreibgeschützten Eigenschaft. Die zu löschende Eigenschaft wird mit einem DependencyPropertyKey angegeben. (Von DependencyObject geerbt.)
Öffentliche MethodeCloneErstellt einen änderbaren Klon der Freezable, indem tiefe Kopien von den Werten des Objekts erzeugt werden. Beim Kopieren von Abhängigkeitseigenschaften des Objekts kopiert diese Methode Ausdrücke (die jedoch möglicherweise nicht mehr aufgelöst werden können), jedoch keine Animationen oder ihre aktuellen Werte. (Von Freezable geerbt.)
Geschützte MethodeCloneCoreKopiert die Basiswerte (nicht animiert) der Eigenschaften des angegebenen Objekts. (Überschreibt Freezable.CloneCore(Freezable).)
Öffentliche MethodeCloneCurrentValueErstellt einen änderbaren Klon (tiefe Kopie) von Freezable mit den aktuellen Werten. (Von Freezable geerbt.)
Geschützte MethodeCloneCurrentValueCoreKopiert die aktuellen Werte der Eigenschaften des angegebenen Objekts. (Überschreibt Freezable.CloneCurrentValueCore(Freezable).)
Öffentliche MethodeCoerceValueWandelt den Wert der angegebenen Abhängigkeitseigenschaft um. Für die Umwandlung wird eine vorhandene CoerceValueCallback-Funktion aufgerufen, die in den Metadaten der Abhängigkeitseigenschaft für das aufrufende DependencyObject angegeben ist. (Von DependencyObject geerbt.)
Geschützte MethodeCreateInstanceInitialisiert eine neue Instanz der Freezable-Klasse. (Von Freezable geerbt.)
Geschützte MethodeCreateInstanceCoreErstellt eine Instanz eines InputBinding-Objekts. (Überschreibt Freezable.CreateInstanceCore().)
Öffentliche MethodeEqualsBestimmt, ob ein angegebenes DependencyObject dem aktuellen DependencyObject entspricht. (Von DependencyObject geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeFreeze()Definiert das aktuelle Objekt als nicht änderbar und legt seine IsFrozen-Eigenschaft auf true fest. (Von Freezable geerbt.)
Geschützte MethodeFreezeCoreLegt das Freezable-Objekt als nicht änderbar fest oder überprüft, ob es als nicht änderbar festgelegt werden kann. (Von Freezable geerbt.)
Öffentliche MethodeGetAsFrozenErstellt eine fixierte Kopie von Freezable mit Basiseigenschaftswerten (nicht animiert). Da die Kopie fixiert ist, werden alle fixierten Unterobjekte als Verweis kopiert. (Von Freezable geerbt.)
Geschützte MethodeGetAsFrozenCoreDefiniert die Instanz als fixierten Klon des angegebenen Freezable-Objekts mithilfe von Basiseigenschaftswerten (nicht animiert). (Überschreibt Freezable.GetAsFrozenCore(Freezable).)
Öffentliche MethodeGetCurrentValueAsFrozenErstellt eine fixierte Kopie von Freezable mit aktuellen Eigenschaftswerten. Da die Kopie fixiert ist, werden alle fixierten Unterobjekte als Verweis kopiert. (Von Freezable geerbt.)
Geschützte MethodeGetCurrentValueAsFrozenCoreLegt die aktuelle Instanz als fixierten Klon des angegebenen Freezable fest. Wenn das Objekt über animierte Abhängigkeitseigenschaften verfügt, werden die aktuellen animierten Werte kopiert. (Überschreibt Freezable.GetCurrentValueAsFrozenCore(Freezable).)
Öffentliche MethodeGetHashCodeRuft einen Hashcode für dieses DependencyObject ab. (Von DependencyObject geerbt.)
Öffentliche MethodeGetLocalValueEnumeratorErstellt einen spezialisierten Enumerator, mit dem bestimmt wird, welche Abhängigkeitseigenschaften dieses DependencyObject über lokal festgelegte Werte verfügen. (Von DependencyObject geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeGetValueGibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft in dieser Instanz eines DependencyObject zurück. (Von DependencyObject geerbt.)
Öffentliche MethodeInvalidatePropertyBerechnet den effektiven Wert für die angegebene Abhängigkeitseigenschaft neu (Von DependencyObject geerbt.)
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte MethodeOnChangedWird aufgerufen, wenn das aktuelle Freezable-Objekt geändert wird. (Von Freezable geerbt.)
Geschützte MethodeOnFreezablePropertyChanged(DependencyObject, DependencyObject)Stellt sicher, dass entsprechende Kontextzeiger für einen gerade festgelegten DependencyObjectType-Datenmember eingerichtet werden. (Von Freezable geerbt.)
Geschützte MethodeOnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)Der Member unterstützt die Windows Presentation Foundation (WPF)-Infrastruktur und ist nicht für die direkte Verwendung im Code vorgesehen. (Von Freezable geerbt.)
Geschützte MethodeOnPropertyChangedÜberschreibt die DependencyObject-Implementierung von OnPropertyChanged, um auch alle Changed-Handler als Reaktion auf eine Änderung einer Abhängigkeitseigenschaft vom Typ Freezable aufzurufen. (Von Freezable geerbt.)
Öffentliche MethodeReadLocalValueGibt, sofern vorhanden, den lokalen Wert einer Abhängigkeitseigenschaft zurück. (Von DependencyObject geerbt.)
Geschützte MethodeReadPreambleStellt sicher, dass über einen gültigen Thread auf Freezable zugegriffen wird. Erben von Freezable müssen diese Methode am Anfang jeder API aufrufen, die Datenmember liest, bei denen es sich nicht um Abhängigkeitseigenschaften handelt. (Von Freezable geerbt.)
Öffentliche MethodeSetCurrentValueLegt den Wert einer -Abhängigkeitseigenschaft fest, ohne die Wertquelle zu ändern. (Von DependencyObject geerbt.)
Öffentliche MethodeSetValue(DependencyProperty, Object)Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die über ihren Bezeichner angegeben wird. (Von DependencyObject geerbt.)
Öffentliche MethodeSetValue(DependencyPropertyKey, Object)Legt den lokalen Wert einer schreibgeschützten Abhängigkeitseigenschaft fest, die über ihren DependencyPropertyKey-Bezeichner angegeben wird. (Von DependencyObject geerbt.)
Geschützte MethodeShouldSerializePropertyGibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der bereitgestellten Abhängigkeitseigenschaft serialisieren sollen. (Von DependencyObject geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche MethodeVerifyAccessErzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.)
Geschützte MethodeWritePostscriptLöst das Changed-Ereignis für Freezable aus und ruft seine OnChanged-Methode auf. Von Freezable abgeleitete Klassen sollten diese Methode am Ende jeder API aufrufen, die nicht als Abhängigkeitseigenschaften gespeicherte Klassenmember ändert. (Von Freezable geerbt.)
Geschützte MethodeWritePreambleStellt sicher, dass das Freezable nicht fixiert ist und dass über einen gültigen Threadkontext darauf zugegriffen wird. Erben von Freezable sollten diese Methode am Anfang jeder API aufrufen, die Datenmember schreibt, bei denen es sich nicht um Abhängigkeitseigenschaften handelt. (Von Freezable geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliches EreignisChangedTritt auf, wenn Freezable oder ein darin enthaltenes Objekt geändert wird. (Von Freezable geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliches FeldStatischer MemberCommandParameterPropertyBezeichnet die CommandParameter-Abhängigkeitseigenschaft.
Öffentliches FeldStatischer MemberCommandPropertyBezeichnet die Command-Abhängigkeitseigenschaft.
Öffentliches FeldStatischer MemberCommandTargetPropertyBezeichnet die CommandTarget-Abhängigkeitseigenschaft.
Zum Seitenanfang

Sie können angeben, dass die Benutzereingabe einen Befehl aufruft, indem sie eine InputBinding erstellt. Wenn der Benutzer die angegebene Eingabe ausführt, wird der ICommand, der auf die Command-Eigenschaft festgelegt ist, ausgeführt.

Sie können angeben, dass die InputBinding einen Befehl aufruft, der in einem Objekt definiert wird, in dem eine Bindung an die Eigenschaften Command, CommandParameter und CommandTarget erstellt wird. Dies ermöglicht es Ihnen, einen benutzerdefinierten Befehl zu definieren und der Benutzereingabe zuzuordnen. Weitere Informationen finden Sie im zweiten Beispiel des Abschnitts mit Beispielen.

Ein InputBinding kann für ein bestimmtes Objekt oder auf Klassenebene definiert werden, indem ein RegisterClassInputBinding mit dem CommandManager registriert wird.

Die InputBinding-Klasse selbst unterstützt die XAML-Verwendung nicht, da sie keinen öffentlichen Standardkonstruktor verfügbar macht (es ist ein Standardkonstruktor vorhanden, der allerdings geschützt ist). Wenn XAML verwendet wird, können abgeleitete Klassen jedoch einen öffentlichen Konstruktor verfügbar machen und somit Eigenschaften für die abgeleitete Klasse festlegen, die von InputBinding geerbt werden. Zwei vorhandene abgeleitete InputBinding-Klassen, die in XAML instanziiert werden und die Eigenschaften in XAML festlegen können, sind KeyBinding und MouseBinding. Die Eigenschaft in der WPF-Programmierung, die i. d. R. in XAML festgelegt wird und ein oder mehrere InputBinding-Objekte als Werte annimmt, ist die UIElement.InputBindings-Eigenschaft.

Im folgenden Beispiel wird veranschaulicht, wie ein KeyBinding verwendet wird, um eine KeyGesture an den Open-Befehl zu binden. Wenn die Tastenkombination ausgeführt wird, wird der Befehl zum Öffnen aufgerufen.


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


Im folgenden Beispiel wird veranschaulicht, wie ein benutzerdefinierter Befehl an InputBinding gebunden wird. In diesen Beispielen wird eine Anwendung erstellt, die dem Benutzer ermöglicht, die Hintergrundfarbe durch das Ausführen von einer der folgenden Aktionen zu ändern:

  • Das Klicken auf eine Schaltfläche.

  • Drücken von STRG+C.

  • Klicken Sie mit der rechten Maustaste auf ein StackPanel (außerhalb der ListBox).

Im ersten Beispiel wird eine Klasse mit dem Namen SimpleDelegateCommand erstellt. Diese Klasse akzeptiert einen Delegaten, damit das Objekt, das den Befehl erstellt, die Aktion definieren kann, die eintritt, wenn der Befehl ausgeführt wird. SimpleDelegateCommand definiert auch Eigenschaften, die angeben, welche Tasten und Mauseingabe den Befehl aufrufen. GestureKey und GestureModifier geben die Tastatureingabe an, und MouseGesture gibt die Mauseingabe an.


 // 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;
}


Im folgenden Beispiel wird ein ColorChangeCommand-Steuerelement erstellt und initialisiert, das ein SimpleDelegateCommand ist. Im Beispiel wird auch die Methode definiert, die ausgeführt wird, wenn der Befehl aufgerufen wird, und die Eigenschaften GestureKey, GestureModifier und MouseGesture werden festgelegt. Eine Anwendung würde die InitializeCommand-Methode aufrufen, wenn das Programm beginnt, z. B. im Konstruktor von einem 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;
    }
}


Im folgenden Beispiel wird schließlich die Benutzeroberfläche erstellt. Im Beispiel werden eine KeyBinding und eine MouseBinding einem StackPanel hinzugefügt, das einen Button und eine ListBox enthält. Wenn der Benutzer in der ListBox ein Element auswählt, kann er die Farbe des Hintergrunds in die ausgewählte Farbe ändern. In jedem Fall wird die CommandParameter-Eigenschaft im ListBox an das ausgewählte Element gebunden, und die Command-Eigenschaft wird an den ColorChangeCommand gebunden. Die Eigenschaften KeyBinding.Key, KeyBinding.Modifiers und MouseBinding.MouseAction werden an die entsprechenden Eigenschaft der SimpleDelegateCommand-Klasse gebunden.


<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

Unterstützt in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt 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 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft