6

基本的に、座標は「ピクセルベース」であると言えます。(10,10) のピクセルまたは 100 ピクセルの幅を理解するのは簡単です。

ただし、位置とサイズは double 形式であるため、サイズを 100.6 に、位置を (10.1,50.9) にすることができます。小数値は位置/サイズに影響を与えますか?

実際、ポイントを計算してカスタム パスを生成します。1.9999999 と 2.000000 のように、一部のポイントはほぼ同じです。最初はすべてのポイントを丸めたいのですが、xaml での影響は確かです (1.99 と 2.00、同じポイントですか?)。

4

2 に答える 2

8

いいえ、WPF の位置とサイズはピクセル ベースではなく、「単位」ベースです。

実際、画面が 96 dpi に設定されている場合、1 単位は 1 ピクセルに相当します。ただし、たとえば画面を 120 dpi に設定した場合、1 単位は 1.25 ピクセルに相当します。

直接的な利点は、アプリケーションが Windows フォーム アプリよりも高いスケール解像度に簡単に適合することです。

FrameworkElement.Height プロパティからの引用:

この値は、デバイスに依存しない単位 (1/96 インチ) の測定値として解釈されます。

結論として、値を四捨五入することをお勧めします。技術的な理由ではなく、XAML マークアップをより読みやすく、「自然」にするためです。

于 2013-01-07T08:45:07.273 に答える
6

WPFはベクターグラフィックを使用します。詳細については、ビジュアルレンダリング動作の「ベクターグラフィックス」セクションを参照してください。ベクターグラフィックスの大きな利点の1つは、(たとえばパスなどの)図面をピクセル化せずに簡単に拡大縮小できることです。

計算されたポイント値がパスジオメトリに直接配置されている場合、パスのポイントを丸めることはあまり意味がありません。座標はPathオブジェクトの原点を基準にしており、Path(またはその祖先の1つ、たとえばCanvas)自体が小数のピクセル位置にある場合があります。

ポイント値がXAMLに書き込まれる場合、丸めによってXAMLがより適切になり、1.99と2の違いに気付かないというSteveに同意します。

于 2013-01-07T08:47:57.860 に答える