【发布时间】:2022-01-12 11:07:30
【问题描述】:
UWP 画布的坐标系从控件左上角的 (0,0) 开始。如何更改坐标以便 (0, 0) 出现在画布的右下角?
【问题讨论】:
UWP 画布的坐标系从控件左上角的 (0,0) 开始。如何更改坐标以便 (0, 0) 出现在画布的右下角?
【问题讨论】:
(0, 0) 总是指Canvas 的左上角。
如果你想让子控件出现在右下角,你应该根据Canvas的大小和控件本身来计算坐标:
Button child = new Button { Content = "Click me!", Height = 33, Width = 78};
Canvas.SetTop(child, canvas.Height - child.Height);
Canvas.SetLeft(child, canvas.Width - child.Width);
canvas.Children.Add(child);
XAML:
<Canvas x:Name="canvas" Width="200" Height="200" Background="Yellow" />
如果你没有明确设置控件的大小,你可以等到它被渲染后才知道它的大小:
Button child = new Button { Content = "Click me!" };
canvas.Children.Add(child);
child.Loaded += (s, e) =>
{
Canvas.SetTop(child, canvas.Height - child.ActualHeight);
Canvas.SetLeft(child, canvas.Width - child.ActualWidth);
};
【讨论】: