1

色や太さなどの異なる線で同じ図面に描画する必要があります。

PathGeometry の 2 つのインスタンスを作成できますが、それらに色を設定できません。

Path の 2 つのインスタンスを作成できますが、コントロールに表示できません。

私は何を間違っていますか?

コメントありがとうございます!

アンダース、デンマーク。

以下のコードは、私のコントロールに「コレクション」のみを表示しますが、回答の出発点になると思いました...

        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;
4

1 に答える 1

5

正しいアプローチを開始しました。ジオメトリは「形状」を定義するので、色を設定できないことを心配しないでください。パスは、ジオメトリを画面上の視覚的表現に変換するため、ここで色とストロークの太さを設定できます。

あなたの問題は最後のステップにあり、コントロールの content プロパティを設定しています。通常、このプロパティは、一部のデータ オブジェクトをコントロールに関連付けるために使用されます。次に、その視覚的表現であるテンプレートを提供します。

パスをパネルの子として追加する必要があります。

たとえば、Canvas または Grid をコントロールに追加します。次に、Children コレクション プロパティを介して Grid / Canvas に 2 つのパスを追加します。

于 2011-01-04T15:17:25.067 に答える