Silverlight 3 Mobile (WP7) - проблема PathGeometry, пожалуйста, помогите! - PullRequest
2 голосов
/ 24 октября 2010

в Silverlight 3 для мобильных устройств, как мне получить точки фигуры Пути, чтобы я мог в конечном итоге получить их точки (координаты X, Y)?Из того, что я читал, похоже, что древовидные структуры PathGeometry не хранятся в Silverlight 3 для мобильных устройств (я делаю это для WP7) ... Есть ли другой способ обойти это?Все, что я хочу, - это коллекция Очков Пути.Ниже приведен код, который я написал для разбора Сегментов Пути, чтобы попасть в Точки, НО, коллекция Фигуры всегда пуста, поэтому я даже не могу добраться до Сегментов.Я также пытался использовать XamlReader.load для чтения в Path XAML, но это дает те же результаты, пустую коллекцию фигур.Я также вставил путь XAML ниже.

Спасибо за чтение и надеюсь, что кто-то может указать мне правильное направление :) Тим

    private List<Point> getShapePathPoints(Path shapePath)
    {
        List<Point> shapePathPoints = new List<Point>();

        PathGeometry pathGeometry = (PathGeometry)shapePath.Data;
        foreach (PathFigure pathFigure in pathGeometry.Figures)
        {

            foreach (PolyLineSegment segment in pathFigure.Segments)
            {
                foreach (Point point in segment.Points)
                {
                    shapePathPoints.Add(point);
                }
            }
        }

        return shapePathPoints;
    }

1 Ответ

1 голос
/ 24 октября 2010

Фигуры и сегменты - это высокоуровневый программный способ определения пути.Они не представляют собой внутреннее хранилище, используемое самим путем, поскольку в целом они неэффективны для памяти.

Язык мини-путей, который используется для определения подавляющего большинства путей, является формой сериализации для фактического внутреннегопредставление пути.Когда такие пути созданы, программные наборы фигур не генерируются.

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

Ваши варианты: -

  • использовать Xaml, который включает в себя экземпляры фигур и сегментов, а не язык мини-путей
  • используйте XmlReader или XDocument, чтобы загрузить пути, содержащие Xaml, найти интересующий путь, самостоятельно проанализировать мини-язык.
...