Нарисуй Путь программно - PullRequest
       25

Нарисуй Путь программно

6 голосов
/ 05 декабря 2011

Я учусь рисовать фигуры в WPF.Я хочу нарисовать Path программно, а не через XAML.Я не знаю, что можно присвоить свойству Data.

Path p = new Path();
p.Data = ???

Ответы [ 2 ]

7 голосов
/ 05 декабря 2011

Посмотрите на образец в MSDN :

//Add the Path Element
myPath = new Path();
myPath.Stroke = System.Windows.Media.Brushes.Black;
myPath.Fill = System.Windows.Media.Brushes.MediumSlateBlue;
myPath.StrokeThickness = 4;
myPath.HorizontalAlignment = HorizontalAlignment.Left;
myPath.VerticalAlignment = VerticalAlignment.Center;
EllipseGeometry myEllipseGeometry = new EllipseGeometry();
myEllipseGeometry.Center = new System.Windows.Point(50,50);
myEllipseGeometry.RadiusX = 25;
myEllipseGeometry.RadiusY = 25;
myPath.Data = myEllipseGeometry;
myGrid.Children.Add(myPath);

Это строка myPath.Data = myEllipseGeometry;, которую вы ищете.Просто назначьте ему объект Geometry.

0 голосов
/ 21 февраля 2018

Вот пример того, с чем я экспериментировал:

using Windows.Foundation;
using Windows.UI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Shapes;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Data;

namespace GridNineExperiment
{

    public class Hamburger : Button
    {

        static GeometryCollection DataHamburger = new GeometryCollection
        {
            new RectangleGeometry {Rect = new Rect{X = 0, Y = 0, Width = 20, Height = 5 }},
            new RectangleGeometry {Rect = new Rect{X = 0, Y = 10, Width = 20, Height = 5 }},
            new RectangleGeometry {Rect = new Rect{X = 0, Y = 20, Width = 20, Height = 5 }},
        };

        static Path PathHamburger = new Path
        {
            Fill = new SolidColorBrush(Colors.White),
            Stroke = new SolidColorBrush(Colors.Black),
            StrokeThickness = 1.0,
            Data = new GeometryGroup { Children = DataHamburger } 
        };

    public Hamburger()
    {
        Content = PathHamburger;
    }
}
...