1

私は UIAutomation でいくつかの作業を行っており、WPF で AvalonEdit コントロールのコンテンツを取得する必要があります。テキストの ControlType として AvalonEdit コントロールを取得することしかできません。

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

これはサポートされていません...

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

これからテキスト コンテンツを抽出する方法が見つからないようです。ControlType.Text を使用している場合はできませんか? ControlType Edit & Document も使用してみましたが、AvalonEdit はそれらをサポートしていないようです。

どんな助けでも感謝します。ありがとう!

4

1 に答える 1

2

ソース コードを少し調べたところ、AvalonEdit.TextEditor が UIAutomation をサポートしていることがわかりました。これらは、それを使用するために必要な完全な手順です。

まず、ControlType.Custom を使用して TextEditor を見つけます。

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

TextEditorAutomationPeer クラスは IValueProvider を実装するため、UIAutomation を使用して TextEditor からテキストを取得するには、次のように ValuePattern を使用します。

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

これは私のために働いた:)

于 2011-07-18T20:27:28.503 に答える