2009-07-30 5 views
1

あなたはSystem.Drawing.RectangleがSystem.Windows.Int32Rectに置き換えられたことを知っていますか? (非浮動小数点形状に関する限り...)WPF:System.Windows.Int32Rect ---> System.Windows.Int32Point?

整数点またはサイズに似た新しいオブジェクトがありますか?もしそうでなければ、私はSystem.Drawingを使うだけですが、それはちょっと混じり合ってはいけない2つのプラットフォームの小さなミックスのようです。

とにかく、これについてどう思いますか?

+0

System.Windows描画プリミティブを使用しない理由がありますか? –

+0

私はSystem.Drawingを使うのが一歩前進しているように感じます。つまり、ライブラリ全体が新しいSystem.Windowsに置き換えられるはずです。 – Giffyguy

+0

下記の私のコメントを参照してください。 – Giffyguy

答えて

2

WPFの描画プリミティブは、すべての測定値/場所の値を倍精度で格納します。つまり、指摘したように、Int32Rect以外のすべての値が含まれます。このデザインの背後にある理由は、WPFがピクセルからディスプレイに直接バインドされないためです。つまり、デバイスに依存しないピクセル(DIP)を使用して、レンダリングされているどのデバイスでもスケーリングできます。これにより、WPFは非常に簡単に表示されているすべてのものを拡大縮小して変換することができます。

System.Windows.Int32Rectについては、API内で使用されているのは、ピクセルのキャプチャとクロップのみです。これは理にかなっています。スクリーンキャプチャを行うときは、デバイスに現在表示されているピクセルを正確に取得したいと考えています。

+0

これは意味があります。同様の目的で、単純なInt32Pointを作成することを希望していました。整数だけが必要な時があります。整数だけを扱う場合、浮動小数点の値は実際には決して正確な数値ではないので、実際には精度が損なわれます。 – Giffyguy

+1

これはコードビハインド関数用であり、表示用ではないことを付け加えておきます。私はDIPが私に何かを意味するところで働いていないので、フローティングベースのUIライブラリはすべて私がメモリ内で作成しようとしているものには本当に適していません。 – Giffyguy

関連する問題