Auf Englisch lesen

Freigeben über


AutomationPropertyChangedEventHandler Delegat

Definition

Stellt die Methode dar, die von der Benutzeroberflächenautomatisierungs-Clientanwendung implementiert wird, um das Ereignis zu behandeln, dass vom Benutzeroberflächenautomatisierungs-Anbieter ausgelöst wird, wenn sich eine Eigenschaft geändert hat.

C#
public delegate void AutomationPropertyChangedEventHandler(object sender, AutomationPropertyChangedEventArgs e);

Parameter

sender
Object

Das Objekt, das das Ereignis ausgelöst hat.

e
AutomationPropertyChangedEventArgs

Informationen zum Ereignis.

Beispiele

Im folgenden Beispiel werden Änderungen in der IsEnabled Eigenschaft der abonnierten Elemente behandelt.

C#

AutomationPropertyChangedEventHandler propChangeHandler;
/// <summary>
/// Adds a handler for property-changed event; in particular, a change in the enabled state.
/// </summary>
/// <param name="element">The UI Automation element whose state is being monitored.</param>
public void SubscribePropertyChange(AutomationElement element)
{
    Automation.AddAutomationPropertyChangedEventHandler(element, 
        TreeScope.Element, 
        propChangeHandler = new AutomationPropertyChangedEventHandler(OnPropertyChange),
        AutomationElement.IsEnabledProperty);
}

/// <summary>
/// Handler for property changes.
/// </summary>
/// <param name="src">The source whose properties changed.</param>
/// <param name="e">Event arguments.</param>
private void OnPropertyChange(object src, AutomationPropertyChangedEventArgs e)
{
    AutomationElement sourceElement = src as AutomationElement;
    if (e.Property == AutomationElement.IsEnabledProperty)
    {
        bool enabled = (bool)e.NewValue;
        // TODO: Do something with the new value. 
        // The element that raised the event can be identified by its runtime ID property.
    }
    else
    { 
        // TODO: Handle other property-changed events.
    }
}

public void UnsubscribePropertyChange(AutomationElement element)
{
    if (propChangeHandler != null)
    {
        Automation.RemoveAutomationPropertyChangedEventHandler(element, propChangeHandler);
    }
}

Hinweise

Die AutomationElement darstellung durch sender möglicherweise keine zwischengespeicherten Eigenschaften oder Muster, je nachdem, ob die Anwendung dieses Ereignisses während eines CacheRequest aktiven Ereignisses abonniert hat.

Abhängig von der Anbieterimplementierung bedeutet ein Eigenschaftsänderungsereignis nicht unbedingt, dass der Eigenschaftswert anders ist; es kann einfach bedeuten, dass die Eigenschaft festgelegt wurde, auch auf denselben Wert. Wenn Ihre Anwendung nur auf tatsächliche Änderungen reagieren muss, ist es Ihre Verantwortung, den Zustand der Eigenschaft nachzuverfolgen.

Erweiterungsmethoden

GetMethodInfo(Delegate)

Ruft ein Objekt ab, das die Methode darstellt, die vom angegebenen Delegaten dargestellt wird.

Gilt für

Produkt Versionen
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

Siehe auch