Wywoływanie zdarzeń od dostawcy automatyzacji interfejsu użytkownikaRaise Events from a UI Automation Provider

Uwaga

Ta dokumentacja jest przeznaczona dla .NET Framework deweloperów, którzy chcą korzystać z zarządzanych Automatyzacja interfejsu użytkownikaUI Automation klas zdefiniowanych w System.Windows.Automation przestrzeni nazw.This documentation is intended for .NET Framework developers who want to use the managed Automatyzacja interfejsu użytkownikaUI Automation classes defined in the System.Windows.Automation namespace. Aby uzyskać najnowsze informacje na temat Automatyzacja interfejsu użytkownikaUI Automation , zobacz interfejs API usługi Windows Automation: Automatyzacja interfejsu użytkownika.For the latest information about Automatyzacja interfejsu użytkownikaUI Automation, see Windows Automation API: UI Automation.

Ten temat zawiera przykładowy kod, który pokazuje, jak zgłosić zdarzenie od dostawcy automatyzacji interfejsu użytkownika.This topic contains example code that shows how to raise an event from a UI Automation provider.

PrzykładExample

W poniższym przykładzie Automatyzacja interfejsu użytkownikaUI Automation zdarzenie jest zgłaszane w implementacji niestandardowego przycisku kontrolki.In the following example, a Automatyzacja interfejsu użytkownikaUI Automation event is raised in the implementation of a custom button control. Implementacja umożliwia aplikacji klienta automatyzacji interfejsu użytkownika symulowanie kliknięcia przycisku.The implementation enables a UI Automation client application to simulate a button click.

Aby uniknąć niepotrzebnego przetwarzania, przykład sprawdza, ClientsAreListening czy zdarzenia powinny być zgłaszane.To avoid unnecessary processing, the example checks ClientsAreListening to see whether events should be raised.

/// <summary>
/// Responds to a button click, regardless of whether it was caused by a mouse or
/// keyboard click or by InvokePattern.Invoke.
/// </summary>
private void OnCustomButtonClicked()
{
    // TODO  Perform program actions invoked by the control.

    // Raise an event.
    if (AutomationInteropProvider.ClientsAreListening)
    {
        AutomationEventArgs args = new AutomationEventArgs(InvokePatternIdentifiers.InvokedEvent);
        AutomationInteropProvider.RaiseAutomationEvent(InvokePatternIdentifiers.InvokedEvent, this, args);
    }
}

Zobacz teżSee also