来自MainWindow ctor:
for(var i = 0; i <5; i++)
{
var button = new Button {};
button.LayoutTransform = new RotateTransform(i * 10);
button.Width = 300;
button.Height = 300;
TempCanvas.Children.Add(button);
}
这会产生以下结果:
请有人解释为什么会这样。我希望5个按钮可以旋转到同一个点。
我不想渲染RenderTransform,因为我将渲染的图形将在父级之外绘制而不会反映在度量中。
答案 0 :(得分:1)
Canvas是一个问题,与其他包含不同,它不受物理尺寸的限制,它会向各个方向延伸到无限远。因此它的旋转原点不是canvas.height / 2的canvas.width / 2.
如果您在网格或停靠面板中重复代码,您将获得所需的结果。
答案 1 :(得分:0)
你想要这样的东西:
<强> 代码: 强>
for (var i = 0; i < 5; i++)
{
var button = new Button { };
//button.LayoutTransform = new RotateTransform(i * 10);
button.RenderTransform = new RotateTransform(i * 10);
button.Width = 300;
button.Height = 300;
button.Margin = new Thickness(200, 0, 0, 0);
TempCanvas.Children.Add(button);
}