Encontre a posição de controle na tela
-
27-09-2020 - |
Pergunta
eu tenho um Canvas
que contém alguns Textblocks
e preciso encontrar os pontos dos cantos superior e esquerdo que foram atribuídos no documento XAML.Como posso obter essas duas propriedades?
Quando eu percorro os elementos da estrutura no Canvas
Não consigo encontrar as propriedades listadas.
Solução
Aqui estão alguns exemplos de como obter os 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 ehttp://msdn.microsoft.com/en-us/library/system.windows.controls.canvas.top.aspxPara maiores informações
Outras dicas
Solução elegante
foreach (FrameworkElement fe in Canvas.Children)
Thickness margin = fe.Margin;
MessageBox.Show("Left: " + margin.Left + "Top: " + margin.Top);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow