0

MouseEventArgs.GetPosition()ボーダーコントロールを呼び出すと、(471、326.723333333333)のような浮動小数点値が得られます。いつでも手動で数値を丸めることができますが、整数を取得するための何らかの設定があるのではないかと思っていました。

SnapsToDevicePixels国境管理にTrueを設定することは役立つと思いましたが、おそらく無関係であるため、そうではありません。

何か案は?

ありがとう!

4

3 に答える 3

4

WPFでは、常に浮動小数点値でポジショニングが返されます。丸める場合は、手動で行う必要があります。

これは解像度の独立性によるものであり、仕様によるものです。

于 2009-08-12T15:14:03.123 に答える
0

WPFはデバイスに依存せず、すべてのデバイスが同じピクセルサイズを共有するわけではないため、分率座標でMouseEventsを渡すことは理にかなっています(また、座標系の変換全体が整数のピクセル値で行われない3D空間にコントロールを配置することもできます)。

SnapsToDevicePixelsは、コントロールの表示方法を制御するプロパティであり、エッジと直線は、中間よりも完全なピクセル上にあることが望ましいです。これは、マウスイベントの処理方法とは関係ありません(お気づきのとおり)。

一般的な経験則として、WPFのすべてはdouble値で測定されるため、WPFと一緒に使用するか(チェックはとにかく同じである可能性があります)、必要にint応じて丸めを続けます:-)

于 2009-08-12T15:16:11.763 に答える
0

マウスからのポジショニングは継続的です。モニター上の位置は個別です。取得する座標値は必要な値よりも優れており、丸めると常に最も近いピクセルが得られます。基本的には丸めて、気にしないでください。

于 2009-08-12T15:16:12.183 に答える