C# Silverlight,鼠标单击路径中的间隙

C# Silverlight,鼠标单击路径中的间隙,c#,wpf,silverlight,xaml,C#,Wpf,Silverlight,Xaml,我正在开发一个Silverlight应用程序,它在画布上显示多个小图标,每个图标的大小约为10x10像素。图标由路径定义 存在一个可用性问题,一些图标的形状是这样的,因此,如果用户在间隙中单击,则不会注册任何单击。请看下图,了解我的意思 我想知道,在WPF/Silverlight中是否有一种简单的方法可以使路径的“背景”成为可点击的?而不是将其包装在另一个WPF类型中,这将增加渲染器的负担 或者,是否有一个简单的解决方案来改进系统,例如将路径包裹在矩形或其他几何体中,以使整个区域可单击?使用带

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

存在一个可用性问题,一些图标的形状是这样的,因此,如果用户在间隙中单击,则不会注册任何单击。请看下图,了解我的意思

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


或者,是否有一个简单的解决方案来改进系统,例如将路径包裹在矩形或其他几何体中,以使整个区域可单击?

使用带有图形组的画笔,而不是路径

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


由于您希望避免将其嵌套在另一种类型中,也许可以尝试使用透明颜色路径来填充这些间隙?您知道如何做到这一点吗?据我所知,Path支持填充、笔划,但不支持多种颜色。或者你是说两条路径?这需要在实际路径后面放置一条普通的矩形路径,并处理相同的点击事件。这可能比矩形的开销更大,但您需要进行时间测试。当然更难维护。顺便说一句,实际上不需要透明的几何体。我喜欢直接控制渲染区域。