#c# #xaml #uwp
#c# #xaml #uwp
Вопрос:
Холст UWP имеет систему координат, начинающуюся с (0,0) в левом верхнем углу элемента управления. Как изменить координаты так, чтобы (0, 0) отображалось в правом нижнем углу холста?
Ответ №1:
(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:
lt;Canvas x:Name="canvas" Width="200" Height="200" Background="Yellow" /gt;
Если вы явно не зададите размер элемента управления, вы можете подождать, пока он не будет отрисован, чтобы получить его размер:
Button child = new Button { Content = "Click me!" }; canvas.Children.Add(child); child.Loaded = (s, e) =gt; { Canvas.SetTop(child, canvas.Height - child.ActualHeight); Canvas.SetLeft(child, canvas.Width - child.ActualWidth); };