0

私はWPFで自分自身を訓練しています。を使用しCanvasて、2 つのポリゴンをグループ化しています。

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ます。

Canvasmyをポリゴン同士のグループ化以外に使いたくないので、これを行うには a よりも軽い何かが存在するのではないかとCanvas考えています。

Model3DGroupWPF2D で UIElements をグループ化するために、WPF3D で同等のものを検索しましたが、成功しませんでした。

CanvasUIElements をグループ化するための最も軽いコンテナは?

4

1 に答える 1

1

グループ化とは、実際には wpf ではレイアウトと呼ばれます。子をレイアウトするコンテナを選択します。

はい、キャンバスは最も愚かなコンテナであるため、最も軽量です。グリッドには非常にスマートな列と行があり、stackpanel は方向に応じて子をスタックしますが、キャンバスは x と y の値に応じて uielements を配置する以外は何もしません。

したがって、図を描画する前に少しオフセットが必要なため、キャンバスはあなたの例ではかなり問題ないと思います。

于 2013-03-23T18:17:19.287 に答える