我需要在不同颜色,厚度等的线条上绘制相同的图纸。
我可以创建两个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;
答案 0 :(得分:5)
你已经开始采用正确的方法,几何定义了一个'形状',所以不要担心你不能设置它的颜色。路径将几何图形转换为屏幕上的可视化表示,因此您可以在此处设置颜色和笔触粗细。
您的问题是最后一步,您正在设置控件的content属性。通常,此属性用于将某些数据对象与控件关联,然后提供一个可视化表示的模板。
您需要做的是将路径添加为面板的子项。
例如,向控件添加Canvas或Grid。然后通过他们的Children集合属性将两个路径添加到Grid / Canvas。