WPF / Path - geometría que consiste en varias líneas con diferente anchura de la línea?

StackOverflow https://stackoverflow.com/questions/4595097

  •  15-10-2019
  •  | 
  •  

Pregunta

Tengo la necesidad de dibujo en el mismo dibujo con líneas de diferente color, grosor, etc.

Me puede crear dos instancias de PathGeometry, pero no se puede establecer el color en ellos.

Me puede crear dos instancias del camino, pero no puede conseguir que aparecen en mi control.

¿Qué estoy haciendo mal?

Gracias por los comentarios!

Anders, Dinamarca.

Código de abajo sólo se muestra "colección" en mi control, pero pensé que podría ser un punto de partida para respuestas ...

        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;
¿Fue útil?

Solución

Ha comenzado en el enfoque correcto, una geometría define una 'forma', por lo que Don; t preocupación de que no se puede establecer su color. Un camino gira la geometría en una representación visual en la pantalla, por lo que aquí se puede ajustar la intensidad del color y el accidente cerebrovascular.

Su problema está en el último paso, se está ajustando la propiedad de contenido de su control. Normalmente, esta propiedad se utiliza para asociar un objeto de datos con un control, entonces la oferta de una plantilla que es su representación visual.

Lo que hay que hacer es añadir sus caminos como hijos de un panel.

Por ejemplo, añadir un lienzo, o una cuadrícula para su control. A continuación, añadir sus dos rutas de acceso a la cuadrícula / lienzo a través de su propiedad de colección infantil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top