Найдите положение элемента управления на холсте

StackOverflow https://stackoverflow.com/questions/3313277

  •  27-09-2020
  •  | 
  •  

Вопрос

У меня есть Canvas который содержит несколько Textblocks и мне нужно найти верхнюю и левую угловые точки, которые были назначены в документе XAML.Как я могу получить эти два свойства?

Когда я перебираю элементы фреймворка на Canvas Кажется, я не могу найти их в списке свойств.

Это было полезно?

Решение

Вот несколько примеров того, как получить значения:

foreach(FrameworkElement fe in canvas.Children){

   // example 0
   double top=(double)fe.GetValue(Canvas.TopProperty);
   double left=(double)fe.GetValue(Canvas.LeftProperty);

   // example 1
   double top1=Canvas.GetTop(fe);
   double left1=Canvas.GetLeft(fe);

}

Видеть http://msdn.microsoft.com/en-us/library/ms749011.aspx и http://msdn.microsoft.com/en-us/library/system.windows.controls.canvas.top.aspx для получения дополнительной информации

Другие советы

Элегантное решение

foreach (FrameworkElement fe in Canvas.Children)
         Thickness margin = fe.Margin;

MessageBox.Show("Left: " + margin.Left + "Top: " + margin.Top);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top