2012-05-08 10 views
6

Meinem Verständnis nach kann AutomationProperties verwendet werden, um Namen von Steuerelementen durch Benutzeroberflächenautomatisierungs-Clients zu identifizieren.Warum Automatisierungseigenschaften in WPF benötigt werden

Ich möchte verstehen, müssen separate Gruppe von Automatisierungseigenschaften zu erstellen, und nicht mit x: Name für den gleichen Zweck.

+0

möglich Duplikat von [AutomationProperties.Name VS x: Name] (http://stackoverflow.com/questions/4605777/automationproperties-name-vs-xname) – Jon

+1

Es ist kein Duplikat. Frage in der Verknüpfung (AutomationProperties.Name VS x: Name) gibt an, was der Unterschied ist. Meine Frage ist warum? – Tilak

+0

Warum? Weil es einen Unterschied darin gibt, wofür jeder von ihnen verwendet werden sollte. Derselbe Grund, warum Menschen sowohl Autos als auch Lastwagen für den Transport anstatt nur eines Fahrzeugtyps benutzen. Hast du das Gefühl, dass meine Antwort dort offene Fragen hinterlässt? Ich würde mich freuen, es zu verbessern. – Jon

Antwort

5

Lassen Sie uns über ein Textfeld nachdenken, in Ihrer Anwendung ist es die PhoneNumberTextBox, und Sie haben auch ein PhoneNumberLabel und PhoneNumberValidationTick. Diese werden dann in einem Gruppenfeld mit einem Etikett mit der Aufschrift "Kunde" angezeigt.

Eine blinde Person, die versucht, Ihre Anwendung zu verwenden, möchte, dass der Bildschirmleser "Kunden-Telefonnummer" sagt, wenn er in das Textfeld eingreift Tester, die einen automatisierten UI-Test für Ihre Anwendung schreiben, möchten das Textfeld mit der "Kunden-Telefonnummer" finden.

Nun, was ist, wenn Ihre Anwendung ins Deutsche übersetzt wurde .... Möchte der blinde Benutzer nicht, dass der Bildschirmleser "Kundentelefonnummer" sagt?

Stellen Sie sich nun vor, Sie ändern Ihre App, um ein PhoneNumberInputControl zu verwenden. Sie werden wahrscheinlich die Namen des Steuerelements in Ihrem Code ändern, aber der Tester möchte lieber, dass sich der Steuerelementname nicht ändert ....

Also brauchen wir das Konzept eines Namens, der von Programmen verwendet wird, die versuchen, die "wichtigen" logischen Steuerelemente einer Anwendung zur Laufzeit zu durchlaufen und etwas darüber zu automatisieren, wie ein Benutzer mit der Anwendung interagiert.