gpt4 book ai didi

wpf - 如何扩展 Path 对象的 WPF HitTest 区域

转载 作者:行者123 更新时间:2023-11-28 19:41:47 33 4
gpt4 key购买 nike

Wpf HitTest 非常好,但我发现扩展命中区域的唯一方法是在对象周围放置一个透明填充区域。我找不到任何方法来在 Path 对象周围添加透明区域。路径非常细,如果用户在路径附近单击,我想启用 HitTest 。我找不到任何方法来扩展具有透明区域的路径对象,如下图所示: alt text http://img175.imageshack.us/img175/6741/linepadding.png

我尝试使用部分透明的笔触画笔,但遇到了此处描述的问题:How can I draw a "soft" line in WPF (presumably using a LinearGradientBrush)?

我还尝试在我的线上放置一个装饰器,但由于 WPF 抗锯齿算法,当我放大我的 Canvas 并以一种糟糕的方式干扰其他对象的 HitTest 时,位置会偏离。

任何扩展 HitTest 区的建议都将不胜感激。

谢谢,库马尔

最佳答案

Path.Data 是一个几何对象。 Geometry 类有几种方法可以帮助您进行公差测试:

GetFlattenedPathGeometry(Double, ToleranceType)
GetOutlinedPathGeometry(Double, ToleranceType)
GetRenderBounds(Pen, Double, ToleranceType)

我认为 GetRenderBounds 最适合您。

一旦你有了几何图形(加上一点宽度)你就可以调用

geometry.FillContains(Point, Double, ToleranceType)

geometry.StrokeContains(Pen, Point, Double, ToleranceType)

除此之外,您应该从 HitTest 中调整所需的命中;

关于wpf - 如何扩展 Path 对象的 WPF HitTest 区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642082/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com