0

我正在使用区域“网格”的动态标记

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
    </Grid.ColumnDefinitions>

    <!--This Grid-->
    <Grid Grid.Column="0" Name="gridImage" SizeChanged="gridImage_SizeChanged">
        <Image Name="image" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>     

</Grid>

在我的代码中,我根据包含此图像的“网格”的大小逐像素绘制图像。如何在代码中读取“网格”区域的大小?

属性 gridImage->Width 和 gridImage->Height 让我可以设置值但不能获取它们。

gridImage->Width = 100;//OK
gridImage->Height = 100;//OK

int width = gridImage->Width;//return -2 147 483 648
int height = gridImage->Height;//return -2 147 483 648

如果我对网格区域使用 SizeChanged 事件,那么我可以使用此代码读取大小

void MainPage::gridImage_SizeChanged(Platform::Object^ sender, Windows::UI::Xaml::SizeChangedEventArgs^ e)
{
    Size size = e->NewSize;
    int width = size.Width;//OK
    int height= size.Height;//OK
}

但是这个事件只有在改变图像对象后才可用,这意味着在我需要它之后才可用。

4

1 回答 1

0

使用ActualWidthActualHeight属性分别获取以像素为单位的实际宽度和高度。与 Height、Width、MinHeight、MinWidth、MaxHeight 和 MaxWidth 不同,它们实际上包含高度和宽度。

于 2012-10-01T14:59:57.543 回答