2011-01-04 9 views
1

Ich habe die Notwendigkeit mit Linien unterschiedlicher Farbe in der gleichen Zeichnung zeichnen, Dicke usw.WPF/Pfad - Geometrie bestehend aus mehreren Linien mit unterschiedlicher Linienbreite?

ich zwei Instanzen von PathGeometry schaffen kann, aber ich kann auf sich nicht gesetzt Farbe.

Ich kann zwei Instanzen von Path erstellen, aber sie können nicht in meinem Steuerelement angezeigt werden.

Was mache ich falsch?

Vielen Dank für Kommentare!

Anders, Dänemark.

-Code unten zeigt nur „Sammlung“ in meiner Kontrolle, aber ich dachte, es ist ein Ausgangspunkt für die Antworten sein könnte ...

 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; 

Antwort

5

Sie auf dem richtigen Weg begonnen hat, definiert eine Geometrie eine ‚Form ', also mach dir keine Sorgen, dass du seine Farbe nicht einstellen kannst. Ein Pfad wandelt die Geometrie in eine visuelle Darstellung auf dem Bildschirm um. Hier können Sie die Farbe und Strichstärke einstellen.

Ihr Problem ist im allerletzten Schritt, Sie setzen die Inhaltseigenschaft Ihres Steuerelements. In der Regel wird diese Eigenschaft verwendet, um ein Datenobjekt mit einem Steuerelement zu verknüpfen. Sie geben dann eine Vorlage an, die die visuelle Darstellung darstellt.

Was Sie tun müssen, ist Ihre Pfade als untergeordnete Elemente eines Panels hinzuzufügen.

Fügen Sie Ihrem Steuerelement beispielsweise ein Canvas oder ein Raster hinzu. Fügen Sie dann Ihre beiden Pfade über ihre Children-Auflistungseigenschaft dem Grid/Canvas hinzu.

+0

Blitzschnelle Antwort und einfach zu probieren: Funktioniert wie ein Charme! Danke, und einen schönen Tag! –

+0

Kein Problem ... bitte als Antwort markieren ;-) – ColinE

Verwandte Themen