Ich durchquere eine WPF-Anwendung über ihren VisualTree, unter Verwendung der VisualTreeHelper, die DependencyObjects zurückgibt.Wie konvertiert man ein DependencyObject in ein AutomationElement?
for(int i = 0; i < VisualTreeHelper.GetChildrenCount(rootObject); i++) {
var child = VisualTreeHelper.GetChild(rootObject, i);
}
jedoch sobald ich das Objekt finden ich suche (in diesem Fall seine eine Schaltfläche) Ich muss „Presse“/es aufzurufen. Ich habe erfolgreich eine Schaltfläche mit einem InvokePattern auf einem AutomationElement aufgerufen.
private void ClickBtn(AutomationElement btnElement) {
InvokePattern btnPattern = btnElement.GetCurrentPattern(
InvokePattern.Pattern) as InvokePattern;
btnPattern.Invoke();
}
So steht das Problem: Wie konvertiere ich ein DependencyObjects in ein AutomationElement?
Oder: Wie rufe ich ein DependancyObject auf?
Oder: Wie erstelle ich ein AutomationElement, das auf das gleiche WPF-Element wie eine bestimmte DependencyObjects-Dosis verweist?
Edit1:
Ich habe festgestellt, dass ich die DependancyObject auf eine Steuer umwandeln kann.
var childVisual = VisualTreeHelper.GetChild(rootObject, i);
var childInstance = childVisual as Control;
Allerdings steht das Problem: Wie rufe ich ein Steuerelement?
Oder: Wie konvertiere ich ein Control in ein AutomationElement?