私が見つけることができるすべてのドキュメントと私が行うすべての検索は、SilverlightではFontHeightをピクセル単位で設定し、LineHeightと同じように設定すると主張しています。 TextBlock実際にはそうではありません。Lucida Sans Unicodeのような共通のフォントでフォントの高さ(および行の高さ)を22に設定すると、行間の実際の高さは33ピクセルになります。 (実際には33と小数点以下)なぜ、Silverlightはフォントの高さがピクセルであると主張しますか?
これを回避するために、私はJavaアプレットで行ったことを試しました。フォントメトリックを使用して実際のテキストの高さを調べます。これを行う唯一の方法は、サンプルテキストをオフスクリーンのTextBlockにレンダリングし、測定し、それがどのくらい高いのかを確認することです。それは非常に便利な答えを返しました:32ピクセル。
これは正確なALMOSTです。オンスクリーンのTextBlockはフォントを33ピクセル高くし、オフスクリーンのフォントは32ピクセル高くしました。テキストを正確に測定する唯一の方法は、「オフスクリーン」ブロックを画面上に透明に、実際の画面上に置くことであることが正確に分かりました。測定結果は33を返します。
ここでは何が欠けていますか?なぜ誰もが高さがピクセルであると言っていますが、ここでの数値は実際の高さをpixel-and-halfsで表したものであり、さらに正確な比率はコントロールがアクティブページの一部であるか、離れて自給自足?私は何を理解していないのですか?
メモの追加:テキストの行が占める高さと実際のグリフの高さの違いを認識しています。しかし、フォントの高さがピクセルであると言う同じドキュメントでは、行の高さはピクセル単位であり、既定値はフォントの高さと同じであるとも言われています。これは明らかに、グリフの高さだけでなく、使用されるすべての垂直方向のスペースがフォントの高さに含まれることを意味します。
最後の注意:私は最後に私の問題は、私はシルバーについての誤報に実行し、その後、私はそれを読んだところ忘れて、私はそれが正確な情報と混ざっ取得しておくことだと思います。キャンバスのコンテンツを保持するためにキャンバスが伸びていると読んだのはどこですか?それはしません。
をグリッドを使ってタイポグラフィ
に1,5回の首都高です。画素について何も言わない。 – vorrtex
次のページはそれぞれ「ピクセル単位」と呼ばれます。 http://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.fontsize%28v=VS.95%29.aspx http://msdn.microsoft.com/en-us/library/cc189010%28vs.95%29.aspx –