2009-03-04 21 views
3

キャンバスの幅を特定の幅にするにはどうすればよいですか?WPF - キャンバスの高さ(ピクセル単位)

私はAnimatedImageコントロールにビットマップを持っており、ビットマップの幅をピクセル単位で知っています。ビットマップを水平にしてキャンバスに正確に合わせるようにします。この尺度はどうやって決定できますか?

注:ビットマップが既に読み込まれているため、RenderTargetBitmapを使用する必要はありません。

答えて

13

WPFでは、デバイスに依存しません。ユニットの実際のピクセルサイズを計算する式は次のとおりです。

ピクセル単位のWPF単位= ConstantWPFUnitサイズ*モニタDPI。 WPFの単位あたりのピクセル=画素数であなたの要素の

サイズ* MyElement.ActualWidth

一定のWPFユニットサイズは1/96です。私が正しく覚えていれば、モニタDPIは、SystemInformation.GetPrimaryMonitorまたは類似のものから返されたクラスのプロパティとして見つけることができます。

FrameworkElementのActualWidthは、デバイスに依存しない単位であり、レイアウトが行われた後に要素が実際に占める幅です。このプロパティに、上記で計算したWPF単位のピクセルを掛けるだけで、あなたの答えが得られます。

私は多くの手作業でコーディングすることに疑念があります。画像や他の視覚的要素を任意の方法で伸ばすことは、通常、問題のコントロール/ブラシのプロパティを設定するだけで達成できます。ビットマップを含む要素のHorizo​​ntalAlignment = "Stretch"とVerticalAlignment = "Center"を試しましたか?

+0

あなたは正しいです、私は問題を解決していました、垂直+水平アライメントはトリックでした!どうもありがとうございました! – melculetz

関連する問題