2011-07-17 33 views
1

私はUIAutomationでいくつかの作業をしており、WPFでAvalonEditコントロールの内容を取得する必要があります。UAutomationでAvalonEditからテキストを取得する

var targetTextPattern = editor[0].GetCurrentPattern(TextPattern.Pattern) as TextPattern; 

私は抽出する方法を見つけるように見えることはできません...これはサポートされていません

var editors = app.FindAll(TreeScope.Descendants, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Text)); 

:私は、テキストのControlTypeとしてAvalonEditコントロールのホールドを取得することができるだけですこのテキストコンテンツは、ControlType.Textを使用しているときにはできませんか?私はまた、ControlType編集&ドキュメントを使用しようとしましたが、AvalonEditはそれらをサポートしていないようです。

助けが必要です。 ありがとう!

答えて

2

ソースコードを少し掘り下げた後、AvalonEdit.TextEditorがUIAutomationをサポートしていることがわかりました。これらは、それを使用するために必要な完全なステップです。このようvaluePatternの使用、そうUIAutomationを使用してテキストエディタからテキストを取得するには、

allEditors = app.FindAll(TreeScope.Descendants, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Custom)); 

TextEditorAutomationPeerクラスがIValueProviderを実装しています:

var editorValuePattern = allEditors[0].GetCurrentPattern(ValuePattern.Pattern) as ValuePattern; 
var text = editorValuePattern.Current.Value; 

これを

まず、テキストエディタを見つけるためにControlType.Customを使用私のために働いた:

関連する問題