【发布时间】:2014-10-02 22:14:45
【问题描述】:
我们的应用程序有一个画布,我们向其中添加绘图视觉效果(如线条、多边形等)
// 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 的框架。
当使用“检查”之类的工具检查视觉结构时,我找不到画布。做了一些研究,发现您需要从UIElement 覆盖OnCreateAutomationPeer 方法,并返回适用的AutomationPeer 对象,以便能够在自动化中看到它。
进行了更改,现在我可以看到画布,但是我仍然看不到画布下添加的任何视觉效果。
谁能帮我理解问题出在哪里?
尝试过的方法/替代方法:
- 尝试使用 OnCreateAutomationPeer 技术,但
DrawingVisuals 不是从UIElement派生的,我不能添加UIElements 到Canvas.VisualCollection。 - 图像识别是一种选择,但我们 出于性能/维护方面的考虑,正在尝试避免这种情况。
【问题讨论】:
标签: wpf ui-automation coded-ui-tests microsoft-ui-automation