метод. Как это возможно? (См. Отредактированный вопрос)

я есть необходимость разобрать строки Безье пути, но, видимо,System.Windows.Media.Geometryверсия в .Net CF Framework не имеетParse() метод, который доступен в его обычном аналоге. Однако ввод следующего XAML работает, поэтому должен быть способ, которым система анализирует строку данных пути.

<Path Stroke="Blue" Data="M 0 0 Q 10 10 20 0"/>

Любая подсказка о том, как я могу инициировать этот анализ самостоятельно с пользовательской строкой вне XAML?

Конечно, я также мог бы попытаться написать свой собственный синтаксический анализатор с использованием регулярных выражений или около того, но я бы предпочел не обрабатывать это сам, так как фреймворк явно способен на это.

Обновить

При использовании предложенного XAMLReader я получаю странное исключение, когда я устанавливаю StrokeThickness для вновь созданногоPath:

path.StrokeThickness = strokeWidth; //ArgumentException ??? (strokeWidth = 6)

Когда я изменяю codepath для рендеринга, используя мой ручной парсер, все работает правильно. Я что-то здесь упускаю? Ничего не меняется, кроме парсера.

Генерация данных вручную:

        //"M {0} {1} Q {2} {3} {4} {5}"

        String regex_input = @"M (\d+) (\d+) Q (\d+) (\d+) (\d+) (\d+)";
        Regex regex = new Regex(regex_input);
        Match match = regex.Match(pathData);

        int startx = int.Parse(match.Groups[1].Value);
        int starty = int.Parse(match.Groups[2].Value);

        int controlx = int.Parse(match.Groups[3].Value);
        int controly = int.Parse(match.Groups[4].Value);

        int endx = int.Parse(match.Groups[5].Value);
        int endy = int.Parse(match.Groups[6].Value);

        PathGeometry geo = new PathGeometry();
        PathFigure figure = new PathFigure();
        figure.StartPoint = new Point(startx, starty);

        QuadraticBezierSegment quad = new QuadraticBezierSegment();
        quad.Point1 = new Point(controlx, controly);
        quad.Point2 = new Point(endx, endy);

        figure.Segments.Add(quad);

        geo.Figures.Add(figure);

        path.Data = geo;

Использование XamlReader

        String formattedXAMLInput = String.Format("<Path xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Stroke='Black' Data='{0}'/>", pathData);
        Path xamlpath = (Path)XamlReader.Load(formattedXAMLInput);
        Geometry xamldata = xamlpath.Data;
        path.Data = xamldata;

Ответы на вопрос(1)

Ваш ответ на вопрос