Encuentra la posición de control en el lienzo.
-
27-09-2020 - |
Pregunta
tengo un Canvas
que contiene algunos Textblocks
y necesito encontrar los puntos de las esquinas superior e izquierda que fueron asignados en el documento XAML.¿Cómo puedo conseguir esas dos propiedades?
Cuando recorro los elementos del marco en el Canvas
Parece que no puedo encontrar las propiedades enumeradas.
Solución
Aquí algunos ejemplos de cómo obtener los valores:
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);
}
Ver http://msdn.microsoft.com/en-us/library/ms749011.aspx yhttp://msdn.microsoft.com/en-us/library/system.windows.controls.canvas.top.aspxpara más información
Otros consejos
Solución elegante
foreach (FrameworkElement fe in Canvas.Children)
Thickness margin = fe.Margin;
MessageBox.Show("Left: " + margin.Left + "Top: " + margin.Top);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow