我想获取windows store app中页面内控件的位置(以像素为单位)。 很高兴能够为任意控制做到这一点,但是目前只是弄清楚如何为一个按钮做这件事就好了!
我已经尝试过查看边距,但是当在Xaml中使用Grid.Row="x"
或HorizontalAlignment="Center"
等机制或以编程方式设置时,它们似乎与实际位置无关。无论定位控件的方法是什么,我都需要这种方法。
提前致谢!
编辑:
我正在通过设置用户界面进行测试:
<Grid x:Name="grid" Style="{StaticResource LayoutRootStyle}">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button x:Name="test" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Content="test"/>
</Grid>
然后修改'Grid.Column','Grid.Row'和Alignment特性。
答案 0 :(得分:4)
您可以使用变换对象获取控制位置。
<Button x:Name="btn" Content="Button" Margin="131,339,0,391" />
void BlankPage4_Loaded(object sender, RoutedEventArgs e)
{
var trans = test.TransformToVisual(null);
var point = trans.TransformPoint(new Windows.Foundation.Point());
}