WP7 PathGeometry错误

jus*_*ase 6 silverlight path pathgeometry windows-phone-7

我对一个简单的PathGeometry对象有一个奇怪的错误,我似乎无法搞清楚.如果有人能向我解释为什么这不起作用,我将不胜感激.

这是一个工作路径的示例,它绘制一个小三角形:

<Path Data="M 8,4 L 12,12 4,12 8,4 Z" Stroke="White" />
Run Code Online (Sandbox Code Playgroud)

这是一个似乎对我不起作用的Path的示例:

<Path Stroke="White">
    <Path.Data>
        <PathGeometry Figures="M 8,4 L 12,12 4,12 8,4 Z" />
    </Path.Data>
</Path>
Run Code Online (Sandbox Code Playgroud)

Data和Figures属性中的字符串是相同的,但后一个示例导致异常:

属性数字的无效属性值M 8,4 L 12,12 4,12 8,4 Z.

我最想做的是将PathGeometry放入ResourceDictionary并将其作为{StaticResource}引用,以便我可以重复使用我的形状.

编辑:

我的解决方案是尝试使用StaticResource引用PathGeometry,而不是引用字符串资源.

<sys:String x:Key="TriangleShape">M 8,4 L 12,12 4,12 8,4 Z</sys:String>
...
<Path Data={StaticResource TriangleShape}" />
Run Code Online (Sandbox Code Playgroud)

Luk*_*ard 4

据我所知,PathGeometry 不支持Path.Data使用的路径标记语法。PathGeometry.Figures属性必须PathFigure 对象的集合。

要以这种方式指定上述形状,您可以执行如下操作:

    <Path Stroke="White">
        <Path.Data>
            <PathGeometry>
                <PathGeometry.Figures>
                    <PathFigure StartPoint="8,4">
                        <PathFigure.Segments>
                            <LineSegment Point="12,12" />
                            <LineSegment Point="4,12" />
                            <LineSegment Point="8,4" />
                        </PathFigure.Segments>
                    </PathFigure>
                </PathGeometry.Figures>
            </PathGeometry> 
        </Path.Data>
    </Path>
Run Code Online (Sandbox Code Playgroud)

免责声明:我还没有在 WP7 上尝试过此操作,仅在我的 PC 上的 Silverlight 上尝试过。