Silverlight,鼠标点击路径中的间隙

时间:2012-08-01 10:43:54

标签: c# wpf silverlight xaml

我正在开发一个Silverlight应用程序,它在Canvas上显示多个小图标,每个图标的大小约为10x10像素。图标由路径定义。

有一个可用性问题,其中一些图标的形状是这样的,因此,如果用户点击间隙,则不会注册任何点击。看下面的图片,看看我的意思。

enter image description here

我想知道,在WPF / Silverlight中是否有一种简单的方法可以使路径的“背景”可点击?而不是将其包装在另一个WPF类型中,这会增加渲染器的负担。

或者,是否有一个简单的修复方法来改进系统,比如在矩形或其他几何体中包裹Path以使整个区域可以点击?

1 个答案:

答案 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>