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

実際の幅と高さをそれぞれピクセル単位で取得するには、ActualWidth プロパティと ActualHeight プロパティを使用ます。Height、Width、MinHeight、MinWidth、MaxHeight、MaxWidth とは異なり、実際には高さと幅が含まれています。

于 2012-10-01T14:59:57.543 に答える