2

によってストレッチされている場合、 のHeightandWidthを取得できますか?ImageUniformToFill

プロパティを試しWidthてみましたが、常に.HeightNaN

4

1 に答える 1

4

イメージ コントロールのサイズを知りたい場合は、次の方法があります。

double theHeight = this.ActualHeight - img.Margin.Top - img.Margin.Bottom;
double theWidth = this.ActualWidth - img.Margin.Left - img.Margin.Right;

(imgは、上記のコードと以下のコードのイメージ コントロール名です)


画像の実際のサイズ (引き伸ばされる前) を知りたい場合は、次のようにしてみてください。

BitmapSource SourceData = (BitmapSource)img.Source;
double imgWidth = SourceData.PixelWidth;
double imgHeight = SourceData.PixelHeight;

(私はここでこれを見つけました)


また、これにより、サイズ変更後の画像の寸法が取得されます(ただし、均一化の前):

double actWidth = img.ActualWidth;
double actHeight = img.ActualHeight;

したがって、これらの変数の 1 つ (actWidthまたはactHeight) はイメージ コントロールの寸法と等しくなければならず、もう 1 つはそれより大きくなります。


イベントで呼び出した場合、2 番目と 3 番目のコードは機能しないことに注意してくださいWindow_Loaded。これは、その時点で画像が読み込まれないためです。すべてがロードされた後に使用する必要があります。

于 2012-09-19T12:07:58.430 に答える