2013-02-28 3 views
0
<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 файлПочему Canvas :: GetLeft всегда возвращает 0?

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

Когда я отладки приложения, я всегда получаю 0.00 для х. Почему так? Или есть какой-то перевод, который я должен сделать в отношении родителя? Я также попытался назвать Canvas myCanvas и сделал myCanvas->GetLeft(selBox);, и я все равно получаю то же самое.

ответ

1

У вас есть то, что вы написали: вы не установили Canvas.Left на Rectangle и по умолчанию 0. Маржа влияет на окончательный макет, но не влияет на Canvas.Left или Right или на любое другое.

+0

Ничего себе, спасибо! Выполнение 'selBox-> Margin.Left' дает правильное (я имею в виду, правильное) значение :) – legends2k

Смежные вопросы