AutomationPropertyChangedEventHandler Delegát
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje metodu implementovanou klientskou aplikací model UI Automation pro zpracování události vyvolané poskytovatelem model UI Automation při změně vlastnosti.
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)
Parametry
- sender
- Object
Objekt, který vyvolal událost.
Informace o události.
Příklady
V následujícím příkladu IsEnabled se zpracovávají změny vlastnosti odebíraných elementů.
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
Poznámky
Reprezentovaná AutomationElement sender
nemusí mít žádné vlastnosti nebo vzory uložené v mezipaměti v závislosti na tom, jestli se aplikace přihlásila k odběru této události, zatímco CacheRequest byla aktivní.
V závislosti na implementaci zprostředkovatele událost změněná vlastností nemusí nutně znamenat, že hodnota vlastnosti je odlišná; Může to znamenat, že vlastnost byla nastavena, dokonce i na stejnou hodnotu. Pokud vaše aplikace potřebuje reagovat pouze na skutečné změny, je vaší zodpovědností sledovat stav vlastnosti.
Metody rozšíření
GetMethodInfo(Delegate) |
Získá objekt, který představuje metodu reprezentovanou zadaným delegátem. |
Platí pro
Viz také
- AddAutomationPropertyChangedEventHandler(AutomationElement, TreeScope, AutomationPropertyChangedEventHandler, AutomationProperty[])
- RemoveAutomationPropertyChangedEventHandler(AutomationElement, AutomationPropertyChangedEventHandler)
- Přihlášení k odběru událostí automatizace uživatelského rozhraní
- Události automatizace uživatelského rozhraní pro klienty