Aracılığıyla paylaş


AutomationInteropProvider.RaiseStructureChangedEvent Yöntem

Tanım

UI Otomasyonu ağacı değiştiğinde bir olay tetikler.

public:
 static void RaiseStructureChangedEvent(System::Windows::Automation::Provider::IRawElementProviderSimple ^ provider, System::Windows::Automation::StructureChangedEventArgs ^ e);
public static void RaiseStructureChangedEvent (System.Windows.Automation.Provider.IRawElementProviderSimple provider, System.Windows.Automation.StructureChangedEventArgs e);
static member RaiseStructureChangedEvent : System.Windows.Automation.Provider.IRawElementProviderSimple * System.Windows.Automation.StructureChangedEventArgs -> unit
Public Shared Sub RaiseStructureChangedEvent (provider As IRawElementProviderSimple, e As StructureChangedEventArgs)

Parametreler

provider
IRawElementProviderSimple

Olayla ilişkilendirilmiş öğe.

e
StructureChangedEventArgs

Olay hakkında bilgi.

Örnekler

Aşağıdaki örnekte, özel liste kutusuna alt öğeler eklendiğinde veya kaldırıldığında bir olayın nasıl tetiklendiği gösterilmektedir.

/// <summary>
/// Responds to an addition to the UI Automation tree structure by raising an event.
/// </summary>
/// <param name="list">
/// The list to which the item was added.
/// </param>
/// <remarks>
/// For the runtime Id of the item, pass 0 because the provider cannot know
/// what its actual runtime Id is.
/// </remarks>
public static void OnStructureChangeAdd(CustomListControl list)
{
    if (AutomationInteropProvider.ClientsAreListening)
    {
        int[] fakeRuntimeId = { 0 };
        StructureChangedEventArgs args =
            new StructureChangedEventArgs(StructureChangeType.ChildrenBulkAdded, 
            fakeRuntimeId);
        AutomationInteropProvider.RaiseStructureChangedEvent(
            (IRawElementProviderSimple)list.Provider, args);
    }
}

/// <summary>
/// Responds to a removal from the UI Automation tree structure 
/// by raising an event.
/// </summary>
/// <param name="list">
/// The list from which the item was removed.
/// </param>
/// <remarks>
/// For the runtime Id of the list, pass 0 because the provider cannot know
/// what its actual runtime ID is.
/// </remarks>
public static void OnStructureChangeRemove(CustomListControl list)
{
    if (AutomationInteropProvider.ClientsAreListening)
    {
        int[] fakeRuntimeId = { 0 };
        StructureChangedEventArgs args =
            new StructureChangedEventArgs(StructureChangeType.ChildrenBulkRemoved, 
            fakeRuntimeId);
        AutomationInteropProvider.RaiseStructureChangedEvent(
            (IRawElementProviderSimple)list.Provider, args);
    }
}
''' <summary>
''' Responds to an addition to the UI Automation tree structure by raising an event.
''' </summary>
''' <param name="list">
''' The list to which the item was added.
''' </param>
''' <remarks>
''' For the runtime Id of the item, pass 0 because the provider cannot know
''' what its actual runtime Id is.
''' </remarks>
Public Shared Sub OnStructureChangeAdd(ByVal list As CustomListControl)
    If AutomationInteropProvider.ClientsAreListening Then
        Dim fakeRuntimeId(1) As Integer
        fakeRuntimeId(0) = 0
        Dim args As New StructureChangedEventArgs( _
            StructureChangeType.ChildrenBulkAdded, fakeRuntimeId)
        AutomationInteropProvider.RaiseStructureChangedEvent( _
            CType(list.Provider, IRawElementProviderSimple), args)
    End If

End Sub


''' <summary>
''' Responds to a removal from the UI Automation tree structure by raising an event.
''' </summary>
''' <param name="list">
''' The list from which the item was removed.
''' </param>
''' <remarks>
''' For the runtime Id of the list, pass 0 because the provider cannot know
''' what its actual runtime ID is.
''' </remarks>
Public Shared Sub OnStructureChangeRemove(ByVal list As CustomListControl)
    If AutomationInteropProvider.ClientsAreListening Then
        Dim fakeRuntimeId(1) As Integer
        fakeRuntimeId(0) = 0
        Dim args As New StructureChangedEventArgs( _
            StructureChangeType.ChildrenBulkRemoved, fakeRuntimeId)
        AutomationInteropProvider.RaiseStructureChangedEvent( _
            CType(list.Provider, IRawElementProviderSimple), args)
    End If

End Sub

Açıklamalar

Ağaç yapısındaki bir değişikliğe örnek olarak, bir liste kutusuna alt öğelerin eklenmesi veya liste kutusundan kaldırılması ya da ağaç görünümünde genişletilmeye veya daraltılmaya örnek olarak gösterilebilir.

Bir alt öğe kaldırıldığında, öğenin veya kapsayıcısının çalışma zamanı tanımlayıcısı oluşturucuya StructureChangedEventArgs geçirilir. Ancak UI Otomasyonu'nun geçerli sürümünde, bir sağlayıcı örneğinin çalışma zamanı tanımlayıcısını bulmasının kolay bir yolu yoktur. GetRuntimeId yöntemi normalde, UI Otomasyonu sistemine denetimin her örneği için benzersiz bir kimlik oluşturucu oluşturmasını belirten sihirli bir sayı içeren AppendRuntimeIdbir dizi döndürür. tarafından GetRuntimeId sağlanan ham değer, istemciler için anlamsız olduğundan ve belirli bir örneği tanımlamak için kullanılamadığından olaylarda kullanılmamalıdır.

Bu sınırlama nedeniyle ve ChildRemoved türüne ChildAdded ait olaylar çok yararlı değildir. Alternatif olarak, her zaman ve kullanın ChildrenBulkAdded ve ChildrenBulkRemovedçalışma zamanı girintisi olarak 0'ı geçirin. bir özel durum oluşturacağı için kullanamazsınız null. İstemcilere kapsayıcıda bir değişiklik yapıldığı bildirilir (öğesine geçirilen StructureChangedEventHandlerparametreyle sender tanımlanır), hangi alt çocukların eklendiğine veya kaldırıldığına dair belirli bir bildirimde bulunulmamalıdır.

Şunlara uygulanır

Ayrıca bkz.