WPF / Path - 几行由不同行宽的多行组成?

时间:2011-01-04 15:12:03

标签: wpf path pathgeometry

我需要在不同颜色,厚度等的线条上绘制相同的图纸。

我可以创建两个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;

1 个答案:

答案 0 :(得分:5)

你已经开始采用正确的方法,几何定义了一个'形状',所以不要担心你不能设置它的颜色。路径将几何图形转换为屏幕上的可视化表示,因此您可以在此处设置颜色和笔触粗细。

您的问题是最后一步,您正在设置控件的content属性。通常,此属性用于将某些数据对象与控件关联,然后提供一个可视化表示的模板。

您需要做的是将路径添加为面板的子项。

例如,向控件添加Canvas或Grid。然后通过他们的Children集合属性将两个路径添加到Grid / Canvas。