2011-10-08 52 views
1

中风的最大测试区域很小。即使你增加笔画宽度,命中率也保持不变。 我的想法是当你画一个描边时,在它下面画一条粗折线。多段线可以作为最受欢迎的区域。但问题是,当我用鼠标捕捉来移动多段线时,我怎么能指示Stroke移动到?放大Stroke.hittest区域

当我从mousecapture释放多段线时,我需要的是将鼠标坐标信号发送到笔画,以便我可以在坐标处重新绘制笔画。我尝试继承类添加一个新的属性,ID(所以每个笔画+多段线具有相同的ID),但我不能继承,因为这些是密封类。

任何想法?

P.S.我的最终目标是让用户能够用鼠标单独或另一个地移动笔画。

回答

0

你可以通过与匹配Stroke设置它使用Polyline小号Tag财产,并要小心的是,标签不用于其他任何东西。

+0

我可以在标签属性中用鼠标坐标保存一个点。但是,我如何将这些坐标传递给正确的Stroke。因为用户可以当场绘制多个笔划。 – tutu

+0

您可以将笔画本身放入标签中。一条折线有一个冲程,对吧? –

+0

但是,如何在标签内使用该笔画呢?使用这段代码,我可以将笔画放在正确的坐标中,然后在另一个地方重新绘制,foreach(StylusPoint p,polyLine.Tag) StylusPoint newpoint = new StylusPoint(); newpoint.X = p.X; newpoint.Y = p.Y; newStylusPointCollection.Add(newpoint); } 描边newStroke = new Stroke(newStylusPointCollection); InkPresenterRoot.Strokes.Add(newStroke); – tutu