我正在开发一个Silverlight应用程序,它在Canvas上显示多个小图标,每个图标的大小约为10x10像素。图标由路径定义。
有一个可用性问题,其中一些图标的形状是这样的,因此,如果用户点击间隙,则不会注册任何点击。看下面的图片,看看我的意思。
我想知道,在WPF / Silverlight中是否有一种简单的方法可以使路径的“背景”可点击?而不是将其包装在另一个WPF类型中,这会增加渲染器的负担。
或者,是否有一个简单的修复方法来改进系统,比如在矩形或其他几何体中包裹Path以使整个区域可以点击?
答案 0 :(得分:2)
使用具有绘图组的绘图笔而不是路径。
<Rectangle Name="TransparentBack" Height="10" Width="10">
<Rectangle.Fill>
<DrawingBrush>
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="Transparent">
<GeometryDrawing.Geometry>
<RectangleGeometry>
<RectangleGeometry.Rect>
<Rect Height="1" Width="1"/>
</RectangleGeometry.Rect>
</RectangleGeometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing Brush="White">
<GeometryDrawing.Geometry>
<PathGeometry>
<PathFigure StartPoint="0,0">
<LineSegment Point="0,1"/>
<LineSegment Point="1,1"/>
</PathFigure>
</PathGeometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Rectangle.Fill>
</Rectangle>