面板中元素的位置wpf

时间:2013-04-27 06:46:10

标签: c# wpf xaml

如何在堆栈面板中查找子元素位置。

        <StackPanel Orientation="Horizontal">
             <ToggleButton Width="20"
                           Height="20"
                           HorizontalAlignment="Stretch"
                           VerticalAlignment="Stretch"
                           Visibility="Visible" />
             <TextBlock Margin="5"
                        VerticalAlignment="Center"
                        FontSize="15"
                        Text="Selection Mode" />
         </StackPanel>

如何找到切换按钮和文本块的X,Y位置?

2 个答案:

答案 0 :(得分:2)

您总是可以使用TranslatePoint将相对于一个UIElement的坐标转换为相对于另一个UIElement的坐标:

var toggleButtonPosition = toggleButton.TranslatePoint(new Point(0, 0), stackPanel);
var textBlockPosition = textBlock.TranslatePoint(new Point(0, 0), stackPanel);

上面的代码将相对于相应控件的点(0,0)转换为相对于包含StackPanel的坐标,从而给出StackPanel内每个控件的位置。

答案 1 :(得分:1)

基本上,控制的位置由持有它的控制,边缘属性,对齐等决定。

您可以使用它来确定子控件的位置。