2011-01-04 1 views
1

У меня есть необходимость рисовать на том же чертеже с линиями разного цвета, толщины и т. Д.WPF/Path - геометрия, состоящая из нескольких линий с различной шириной линии?

Я могу создать два экземпляра PathGeometry, но я не могу установить их цвет.

Я могу создать два экземпляра Path, но не могу их отобразить в моем контроле.

Что я делаю неправильно?

Спасибо за любые комментарии!

Андерс, Дания.

код ниже отображает только «коллекции» в моем контроле, но я думал, что это может стать отправной точкой для ответов ...

 var pathFigure1 = new PathFigure(new Point(0, 0), 
             new List<PathSegment> {new LineSegment(new Point(10, 10), true)}, false); 
     var pathFigure2 = new PathFigure(new Point(20, 20), 
             new List<PathSegment> {new LineSegment(new Point(30, 30), true)}, false); 


     var g1 = new PathGeometry(new List<PathFigure> {pathFigure1}); 
     var g2 = new PathGeometry(new List<PathFigure> {pathFigure2}); 

     var p1 = new System.Windows.Shapes.Path 
        { 
         Data = g1, 
         Stroke = new SolidColorBrush(Color.FromRgb(0, 0, 0)) 
        }; 
     var p2 = new System.Windows.Shapes.Path 
        { 
         Data = g2, 
         Stroke = new SolidColorBrush(Color.FromRgb(170, 87, 170)) 
        }; 

     var content = new Canvas(); 
     content.Children.Add(p1); 
     content.Children.Add(p2); 

     Content = content; 

ответ

5

Вы начали на правильном подходе геометрия определяет «форму ', так что не беспокойтесь, что вы не можете установить его цвет. Путь превращает геометрию в визуальное представление на экране, поэтому здесь вы можете установить толщину цвета и толщины.

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

Что вам нужно сделать, это добавить свои дорожки в качестве дочерних элементов панели.

Например, добавьте в свой холст или сетку. Затем добавьте два пути в Grid/Canvas через их свойство коллекции Children.

+0

Молния быстрая реакция, и легко попробовать: работает как шарм! Спасибо, и у нас потрясающий день! –

+0

Нет проблем ... Пожалуйста, отметьте как ответ ;-) – ColinE

 Смежные вопросы

  • Нет связанных вопросов^_^