我用了两种拇指控制装置:
AutomatedThumbTouchEnabledThumbTouchEnabledThumb类就是这样,并扩展到基本的WPF拇指类。AutomatedThumb是我的一个实验。
我很难让UI自动化框架与控件交互。一开始,他们出现在UI自动化中,验证没有边框的灰色。我为控件编写了自动化对等类,并为它们提供了两个OnCreateAutomationPeer重写,这使得这些控件在UIAV中不再是灰色的,但是没有一个控件返回边界矩形,因此我无法将鼠标移动到它们之间进行交互。
我一直试图使用GetBoundingRectangleCore覆盖Owner.RenderTransform.TransformBounds(new Rect(Owner.RenderSize)),但它们从来没有将边界框返回到自动化树。
有什么想法吗?
提前感谢!
更新
我尝试过让GetBoundingRectanbleCore返回一个值为(1.0, 1.0, 5.0, 5.0)的Rect,然后按我所希望的方式显示边框。我只需要弄清楚如何得到实际控件的边框。
发布于 2015-08-24 21:59:41
我发现GetBoundingRectangleCore对于Thumb控件和派生控件存在一个问题。返回的Rect对象显示的左上角与预期的一样,但它有一个高度和宽度的0,这似乎使自动化树反常,并没有显示边界框。
因此,我和一个同事想出了如下解决方案:
protected override GetBoundingRectangleCore()
{
var result = base.GetBoundingRectangleCore();
if(result.Width == 0 || result.Height == 0)
return new Rect(result.TopLeft, new Point(result.Left + 1, result.Bottom + 1));
return result;
}我希望这能帮助其他人解决这个问题。
https://stackoverflow.com/questions/32187574
复制相似问题