1

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

有一个可用性问题,一些图标的形状像这样,因此,如果用户在间隙中单击,则不会记录任何单击。请参阅下图以了解我的意思。

在此处输入图像描述

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

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

4

1 回答 1

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>
于 2012-08-01T11:28:13.127 回答