2013-04-27 110 views
0

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

 <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

有关什么? – 2013-04-27 06:47:34

+0

@AndreasJohansson:与堆栈面板的关系。 – Sankarann 2013-04-27 07:40:09

回答

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

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

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