AutomationInteropProvider.RaiseStructureChangedEvent Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.
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.