Wpf 对UIElements进行分组的最佳轻量级容器是什么?
我正在WPF中自我训练。我正在使用Wpf 对UIElements进行分组的最佳轻量级容器是什么?,wpf,uielement,Wpf,Uielement,我正在WPF中自我训练。我正在使用画布将两个多边形分组在一起: 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.Stro
画布
将两个多边形分组在一起:
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);
然后,我使用grpCanvas
移动、旋转和播放分组的多边形
因为我不想用我的画布
来做任何事情,除了将多边形彼此分组之外,我想知道是否存在比画布
更轻的东西来做这件事
我在WPF3D中搜索了与WPF2D中的UIElements分组等效的Model3DGroup
,但没有成功
Canvas
是对UIElements进行分组的最轻容器吗?在wpf中,分组的意思实际上被称为布局。您可以选择一个容器来布局您的孩子
是的,帆布是最愚蠢的容器,所以它是最轻的。grid有非常智能的列和行,stackpanel根据Orientation堆叠其子元素,但canvas除了根据x和y值放置uielements之外什么都不做
因此,我认为canvas对于您的示例来说是非常好的,因为您希望在绘制图形之前有一点偏移。谢谢。同时,我通过使用Canvas.SetTop和Canvas.SetLeft了解到,在内部内容上使用TranslateTransform的速度是使用TranslateTransform的两倍。