为什么Canvas :: GetLeft总是返回0?

时间:2013-02-28 13:42:41

标签: windows-store-apps winrt-xaml c++-cx

<Canvas Background="Black">
        <Rectangle Fill="Salmon" Name="selBox" Width="100" Height="100" Margin="657,175" />
        <Button x:Name="btnAnimate" Content="Animate" HorizontalAlignment="Left" Margin="721,422,0,0" VerticalAlignment="Top" Click="btnAnimate_Click" />
</Canvas>

是我的XAML。我已经在MainPage.xaml.cpp文件中写了

void App1::MainPage::btnAnimate_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
    auto x = Canvas::GetLeft(selBox);   
}

当我调试应用时,我总是得到0.00的x。为什么这样?或者我是否有一些关于父母的翻译?我也尝试命名Canvas myCanvas并做myCanvas->GetLeft(selBox);,我仍然得到相同的结果。

1 个答案:

答案 0 :(得分:1)

您拥有自己写的内容:您未在Canvas.Left上设置Rectangle,默认情况下为0。保证金会影响最终布局,但不会影响Canvas.Left或Right或任何其他两个。