WP7 PathGeometry error - PullRequest
       21

WP7 PathGeometry error

6 голосов
/ 29 января 2011

У меня странная ошибка с простым объектом PathGeometry, и я не могу понять это. Буду признателен, если кто-нибудь объяснит мне, почему это не работает.

Вот пример рабочего Пути, который рисует маленький треугольник:

<Path Data="M 8,4 L 12,12 4,12 8,4 Z" Stroke="White" />

Вот пример Пути, который, кажется, не работает для меня:

<Path Stroke="White">
    <Path.Data>
        <PathGeometry Figures="M 8,4 L 12,12 4,12 8,4 Z" />
    </Path.Data>
</Path>

Строка в свойствах «Данные и рисунки» идентична, однако в последнем примере возникает исключение:

Недопустимое значение атрибута M 8,4 L 12,12 4,12 8,4 Z для свойства Figures.

В конечном итоге я хотел бы поместить PathGeometry в ResourceDictionary и ссылаться на него как {StaticResource}, чтобы я мог повторно использовать свои формы.

Edit:

Мое решение заключалось в том, чтобы вместо попытки ссылаться на PathGeometry с помощью StaticResource, вместо этого ссылаться на строковый ресурс.

<sys:String x:Key="TriangleShape">M 8,4 L 12,12 4,12 8,4 Z</sys:String>
...
<Path Data={StaticResource TriangleShape}" />

1 Ответ

4 голосов
/ 29 января 2011

Из того, что я могу сказать, синтаксис разметки пути, используемый Path.Data , не поддерживается PathGeometry.Свойство 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>

Отказ от ответственности: я не пробовал это на WP7, только на Silverlight на моем ПК.

...