我想动态地将一个三角形添加到我的画布上。我可以做到这一点,但只能以一种对我的应用程序不起作用的非常具体的方式。我想做的是提供一个点和一个大小,然后取回一个三角形。
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));
它渲染一个三角形就好了。但是,如果您为上述代码提供宽度和高度,它将停止渲染。
我可以只创建一个特定大小的三角形,而不必首先在画布上设置实际点,就像你做一个椭圆或矩形一样?