2010-03-09 60 views
2

我有麻煩通過UI自動化框架訪問我​​的WPF用戶控件的DependencyProperty值。我已經使用MSDN中的James McCaffreys文章(自動化WPF應用程序中的IO測試,MSDN 2009年3月),但是我只能在標準控件(如按鈕)中看到屬性等。如何從UI自動化框架中獲取WPF UserControl DependencyProperty的值?

我假設有一些自動化接口我有我的用戶來實現,但什麼和如何?

我已經能看到我的控制細如在UISpy中,但我看不到其中的依賴屬性。下面是我的用戶控件在UISpy中的樣子:

AutomationElement一般可訪問性AccessKey:「」AcceleratorKey:「IsKeyboardFocusable:False」LabeledBy:(null)「HelpText:」切換48v幻象電源開/關僅輸入)「。

國家的IsEnabled: 「真」 HasKeyboardFocus: 「假」

識別類名: 「」 ControlType: 「ControlType.Custom」 文化: 「(空)」 的AutomationID: 「V48SwL」 LocalizedControlType: 「定製」 產品名稱: 「」 的ProcessID: 「5684(VirtualSix)」 RuntimeId: 「7 5684 40026340」 IsPassword: 「假」 IsControlElement: 「真」 IsContentElement: 「真」

能見度BoundingRectangle: 「(140,457,31,20)」 ClickablePoint:「155,467」IsOffscreen:「False」

ControlPatterns

回答

2

有沒有從UI自動化獲得任意依賴屬性值的方法:你只能得到AutomationProperty值。

forum post說,在新版本的UIAutomation API中有一種方法來添加自己的自定義AutomationProperties,但該版本的UIA不受WPF支持。

建議的解決方法是將您感興趣的依賴項屬性綁定到AutomationProperties.ItemStatus附加屬性上:這將在AutomationElement.Current.ItemStatus中可用。

+0

感謝薩穆埃爾,我害怕這一點。你的解決方法聽起來不錯,但我會試一試。 – Surfbutler 2010-03-12 13:39:26

相關問題