Automation.AddAutomationPropertyChangedEventHandler Metoda
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í.
Zaregistruje metodu, která bude zpracovávat události změněné vlastností.
public:
static void AddAutomationPropertyChangedEventHandler(System::Windows::Automation::AutomationElement ^ element, System::Windows::Automation::TreeScope scope, System::Windows::Automation::AutomationPropertyChangedEventHandler ^ eventHandler, ... cli::array <System::Windows::Automation::AutomationProperty ^> ^ properties);
public static void AddAutomationPropertyChangedEventHandler (System.Windows.Automation.AutomationElement element, System.Windows.Automation.TreeScope scope, System.Windows.Automation.AutomationPropertyChangedEventHandler eventHandler, params System.Windows.Automation.AutomationProperty[] properties);
static member AddAutomationPropertyChangedEventHandler : System.Windows.Automation.AutomationElement * System.Windows.Automation.TreeScope * System.Windows.Automation.AutomationPropertyChangedEventHandler * System.Windows.Automation.AutomationProperty[] -> unit
Public Shared Sub AddAutomationPropertyChangedEventHandler (element As AutomationElement, scope As TreeScope, eventHandler As AutomationPropertyChangedEventHandler, ParamArray properties As AutomationProperty())
Parametry
- element
- AutomationElement
Element model UI Automation, ke kterému se má přidružit obslužná rutina události.
- scope
- TreeScope
Rozsah událostí, které se mají zpracovat; to znamená, zda jsou na samotném prvku, nebo na jeho předcích a dětech.
- eventHandler
- AutomationPropertyChangedEventHandler
Metoda, která se má volat, když dojde k události.
- properties
- AutomationProperty[]
Vlastnosti model UI Automation zájmu.
Příklady
Následující příklad kódu přidá obslužnou rutinu události, která naslouchá změně v povoleném stavu zadaného prvku.
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
Položka uživatelského rozhraní určená zadaným prvkem model UI Automation nemusí podporovat vlastnosti zadané parametremproperties
.
eventHandler
může být instance metody nebo odkaz na metodu (AddressOf
v Visual Basic).
Platí pro
Viz také
- RemoveAutomationPropertyChangedEventHandler(AutomationElement, AutomationPropertyChangedEventHandler)
- AddAutomationEventHandler(AutomationEvent, AutomationElement, TreeScope, AutomationEventHandler)
- AddAutomationFocusChangedEventHandler(AutomationFocusChangedEventHandler)
- AddStructureChangedEventHandler(AutomationElement, TreeScope, StructureChangedEventHandler)
- Přihlášení k odběru událostí automatizace uživatelského rozhraní
- Přehled událostí automatizace uživatelského rozhraní