0

我想动态地将一个三角形添加到我的画布上。我可以做到这一点,但只能以一种对我的应用程序不起作用的非常具体的方式。我想做的是提供一个点和一个大小,然后取回一个三角形。

         var poly = shape as Polygon;
         Polygon p = new  Polygon
        {
            //Width = size, 
            //Height = size,
            Fill = new SolidColorBrush(Colors.Red),
            ManipulationMode = ManipulationModes.All,
            RenderTransform = new CompositeTransform()
        };

         int w = 200;
         int h = 200;

        Point start = new Point(400, 200);
        var right = new Point(start.X + w, start.Y);
        var top = new Point(start.X + (w / 2), start.Y - (h));

        poly.Points.Add(point);
        poly.Points.Add(right);
        poly.Points.Add(top);
        poly.Points.Add(point);

然后我将形状添加到我的画布子控件,并在形状 RenderTransform 上设置 XY。什么都没有出现。但是,如果我只是这样做:

        Polygon p = new  Polygon
        {
            //Width = size,
            //Height = size,
            Fill = new SolidColorBrush(Colors.Red),
            ManipulationMode = ManipulationModes.All,
            RenderTransform = new CompositeTransform()
        };

         p.Points.Add(new Point(300, 200));
         p.Points.Add(new Point(400, 125));
         p.Points.Add(new Point(400, 275));
         p.Points.Add(new Point(300, 200));

它渲染一个三角形就好了。但是,如果您为上述代码提供宽度和高度,它将停止渲染。

我可以只创建一个特定大小的三角形,而不必首先在画布上设置实际点,就像你做一个椭圆或矩形一样?

4

0 回答 0