В нашем приложении есть холст, на который мы добавляем визуальные элементы для рисования (например, линии, многоугольники и т. д.).
// sample code
var canvas = new Canvas(); // create canvas
var visuals = new VisualCollection(canvas); // link the canvas to the visual collection
visuals.Add(new DrawingVisual()); // add the visuals to the canvas
visuals.Add(new DrawingVisual());
Наша цель — добавить эти визуальные элементы на холст с помощью автоматизации и проверить, правильно ли они добавлены. Мы используем фреймворк, основанный на Microsoft UIAutomation.
При использовании такого инструмента, как «Проверка», для проверки визуальной структуры я не мог найти холст. Провел некоторое исследование и выяснил, что вам нужно переопределить метод OnCreateAutomationPeer
из UIElement
и вернуть соответствующий объект AutomationPeer
, чтобы увидеть это в автоматизации.
Внес изменения, и теперь я вижу холст, однако я все еще не вижу визуальных эффектов, добавленных под холст.
Кто-нибудь может помочь мне понять, в чем проблема?
Что пробовали/альтернативы:
- Пытался использовать метод OnCreateAutomationPeer, но
DrawingVisual
не являются производными отUIElement
, и я не могу добавитьUIElement
кCanvas.VisualCollection
. - Распознавание изображений — это вариант, но мы пытаемся избежать его из соображений производительности/обслуживания.