AutomationPropertyChangedEventHandler AutomationPropertyChangedEventHandler AutomationPropertyChangedEventHandler AutomationPropertyChangedEventHandler Delegate

Definizione

Rappresenta il metodo implementato dall'applicazione client di automazione interfaccia utente per gestire l'evento generato da un provider di automazione interfaccia utente quando viene modificata una proprietà.Represents the method implemented by the UI Automation client application to handle the event raised by a UI Automation provider when a property has changed.

public delegate void AutomationPropertyChangedEventHandler(System::Object ^ sender, AutomationPropertyChangedEventArgs ^ e);
public delegate void AutomationPropertyChangedEventHandler(object sender, AutomationPropertyChangedEventArgs e);
type AutomationPropertyChangedEventHandler = delegate of obj * AutomationPropertyChangedEventArgs -> unit
Public Delegate Sub AutomationPropertyChangedEventHandler(sender As Object, e As AutomationPropertyChangedEventArgs)

Parametri

sender
Object Object Object Object

Oggetto che ha generato l'evento.The object that raised the event.

Ereditarietà
AutomationPropertyChangedEventHandlerAutomationPropertyChangedEventHandlerAutomationPropertyChangedEventHandlerAutomationPropertyChangedEventHandler

Esempi

Nell'esempio seguente vengono gestite le modifiche apportate alla IsEnabled proprietà degli elementi sottoscritti.In the following example, changes in the IsEnabled property of subscribed elements are handled.


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

Dim propChangeHandler As AutomationPropertyChangedEventHandler

''' <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 Sub SubscribePropertyChange(ByVal element As AutomationElement)
    propChangeHandler = _
        New AutomationPropertyChangedEventHandler(AddressOf OnPropertyChange)
    Automation.AddAutomationPropertyChangedEventHandler(element, TreeScope.Element, _
        propChangeHandler, AutomationElement.IsEnabledProperty)

End Sub



''' <summary>
''' Handler for property changes.
''' </summary>
''' <param name="src">The source whose properties changed.</param>
''' <param name="e">Event arguments.</param>
Private Sub OnPropertyChange(ByVal src As Object, ByVal e As AutomationPropertyChangedEventArgs) 
    Dim sourceElement As AutomationElement = DirectCast(src, AutomationElement)
    If e.Property Is AutomationElement.IsEnabledProperty Then
        Dim enabled As Boolean = CBool(e.NewValue)
        ' TODO: Do something with the new value. 
        ' The element that raised the event can be identified by its runtime ID property.
    Else
    End If
 ' TODO: Handle other property-changed events.
End Sub


Public Sub UnsubscribePropertyChange(ByVal element As AutomationElement)
    If (propChangeHandler IsNot Nothing) Then
        Automation.RemoveAutomationPropertyChangedEventHandler(element, propChangeHandler)
    End If

End Sub

Commenti

L' AutomationElement oggetto rappresentato sender da potrebbe non avere alcuna proprietà o pattern memorizzato nella cache, a seconda che l'applicazione abbia sottoscritto questo evento CacheRequest mentre era attivo.The AutomationElement represented by sender might not have any cached properties or patterns, depending on whether the application subscribed to this event while a CacheRequest was active.

A seconda dell'implementazione del provider, un evento di modifica della proprietà non indica necessariamente che il valore della proprietà è diverso. potrebbe solo significare che la proprietà è stata impostata, anche per lo stesso valore.Depending on the provider implementation, a property-changed event does not necessarily signify that the property value is different; it might just mean that the property was set, even to the same value. Se l'applicazione deve rispondere solo alle modifiche effettive, è responsabilità dell'utente tenere traccia dello stato della proprietà.If your application needs to respond only to actual changes, it is your responsibility to track the state of the property.

Metodi di estensione

GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate)

Ottiene un oggetto che rappresenta il metodo rappresentato dal delegato specificato.Gets an object that represents the method represented by the specified delegate.

Si applica a

Vedi anche