在C#中的Windows应用商店中获取控件的位置

时间:2013-08-05 18:46:22

标签: c# windows-store-apps

我想获取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特性。

1 个答案:

答案 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());
}