2012-03-12 7 views
1

私はWPFで印刷コントロールを構築する必要があります。ピクセル、WPFの倍数?

コントロールはキャンバスで、ユーザーはサイズ(A3、A4またはカスタム)を選択できます ユーザーはそのキャンバスにいくつかのオブジェクト(ラベル、グリッド)を追加することができます。それ。

の例では、マージン(厚さ)プロパティです:
を取得または設定します。System.Windows.Thickness

公共ダブルとしての性質
メンバーの概要

境界矩形の左側の幅(ピクセル単位)。

戻り値:
System.Double、画素に、 System.Windows.Thicknessのこのインスタンスの外接矩形の左側の を幅を表します。ピクセルは1/96インチに等しい。デフォルトは0です。

ピクセル単位の値はどのように表されますかDouble? 1.5ピクセルもできますか? キャンバス(データベース内の各コントロール)の位置をピクセル、インチ、cm、mmでどのように保存する必要がありますか?

答えて

1

あなたが書いたように:

をピクセルは、それが浮動小数点数することができインチ

に1/96に等しいです。丸めは、デバイスのレンダリングの最後に実行されます(たとえば、アンチエイリアスのために考慮されます)。私はFPの数学と操作ははるかに遅いが、少なくともあなたはAPIのための一貫性を持っていることに同意します(そして、丸め精度/方法は変更可能です)。

Canvas(データベースなど)の各コントロールの位置は、ピクセル、インチ、cm、mmでどうすれば保存できますか?

どのようなアプリケーションを開発していますか。その "レイアウト"は、異なるユーザー間で共有されるか、ユーザーごとに共有されますか?どのような種類のページあなたのコントロールに使用しますか?固定サイズのページ?固定されている場合は、測定単位(ピクセルも)として使用することができます。ダイナミック(画面解像度に基づいて)の場合は、パーセンテージに変換する必要があります。

+0

私が書いたように、私はCrystal Reportsに似た何かをします。フィールドにその場所を示す必要があり、そのフィールドにテキストが表示されます。キャンバスのフォーマットは、標準的なA3、A4またはカスタムサイズの用紙にすることができます... – serhio

+0

申し訳ありませんが、私はいくつかの単語を逃した!私は思う** **もしあなたがページで作業しているなら、活字の単位を使うべきです(とにかくあなたのユーザーは自分のユニットを見るでしょう)ので、ピクセル( "1/96"と定義されています)を "ニュートラル"単位。このように、ユーザーがレポートの測定単位を変更すると、基礎となるデータに変更を加えることなくUIを更新することができます。もちろん、それは任意の選択です。たとえば、Microsoft Reportsでは、常にインチとポイントを「ニュートラル」単位として使用します。 –

0

WPFはサブピクセルレンダリングを使用しています。多くの場合、すべての要素をすべてのピクセル値にスナップしてより明瞭に見せるレイアウト丸めを使用すると、いくつかのことがぼやけて見えることがあります。

メインウィンドウで "SnapsToDevicePixels"を設定すると、int値を持つことができます。

+0

したがって、オブジェクト「場所」をデータベースに保存すると、DoublesまたはIntegersを使用する必要がありますか? – serhio

+0

WPFは倍精度を使用できるので、データベースの柔軟性を考慮しています。ただし、そのデータベースフィールドを使用するアプリケーションに常にSnapsToDevicePixelsを使用する場合は、位置を整数として保存することができます。 – Erick

+0

私はアニメーションが非常に流暢ではないだろうと思うのですが、それは整数ですが、私はそれが本当の問題ではないことを知っています – Silvermind