我正在自学WPF。我使用Canvas
将两个多边形分组在一起:
var grp = new Canvas();
var polygon = new new Polygon();
polygon.Points.Add(new Point(-15, -20));
polygon.Points.Add(new Point(0, 20));
polygon.Points.Add(new Point(15, -20));
polygon.StrokeThickness = 1;
polygon.Stroke = Brushes.Violet;
polygon.Fill = Brushes.Yellow;
var rotationCenter = centroid(polygon);
var centerPoint = new Ellipse();
Canvas.SetLeft(centerPoint, rotationCenter.X -1 );
Canvas.SetTop(centerPoint, rotationCenter.Y-1);
centerPoint.Fill = Brushes.Green;
centerPoint.Height = 3;
centerPoint.Width = 3;
grp.Children.Add(shipPolygon);
grp.Children.Add(centerPoint);
然后,我移动,旋转和播放我的分组多边形使用grp Canvas
。
因为我不想用我的Canvas
来做任何事情,而不是将多边形彼此分组,我想知道是否存在比Canvas
更轻的东西来做这件事。
我在WPF3D中搜索了相当于Model3DGroup
的东西来分组WPF2D中的ui元素,但没有成功。
Canvas
是最轻的容器组UIElements ?
您所说的分组实际上在wpf中称为布局。你可以选择一个容器来布局你的孩子。
是的,帆布是最笨的容器,所以也是最轻的。Grid有列和行,这是非常智能的,stackpanel根据方向堆叠它的子元素,但canvas除了根据x和y值放置ui元素外什么也不做。
因此,我认为画布非常适合你的例子,因为你想在画你的人物之前有一点偏移