問題タブ [textrenderer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
11995 参照

c# - Bitmap と OnPaintBackground の TextRenderer.DrawText

テキストで提供されているオブジェクトを使用TextRenderer.DrawText()すると、完璧に見えます。独自のオブジェクトを作成して、テキストから取得したオブジェクトを使用すると、見栄えが悪くなります。ビットマップの背景色ではなく、黒を使用してテキストをアンチエイリアス処理しているようです。を使用すればこの問題は回避できますが、この方法には恐ろしいカーニングの問題があります。私は何をすべきか?ビットマップのコンテンツを使用して適切にアンチエイリアスを取得するにはどうすればよいですか?GraphicsOnPaintBackgroundBitmapGraphicsBitmapGraphics.DrawString()TextRenderer.DrawText()

ひどく見える:

良さそうに見えますが、これをコントロールの表面ではなくビットマップにレンダリングしたい:

違いはなんですか?

0 投票する
4 に答える
1814 参照

c# - TextRenderer.MeasureText が言うよりも多くのスペースを必要とする LinkLabel

TextRenderer.MeasureText に測定するテキストと使用する幅を指定すると、そのテキストを表示するために必要な高さが返されます。

そのテキスト、幅、および高さを LinkLabel に指定すると、指定された幅と高さでテキストが表示され、何も切り取られません。

ただし、リンクを LinkLabel.Links コレクションに入れると、LinkLabel は文字間の間隔が少し広く見えるテキストを描画し、場合によってはテキストの最後が切り取られます。これを防ぐ方法はありますか?リンクがある場合にパディングを追加しようとしましたが、さらに必要なスペースを正確に知る確実な方法はありません。これを行う他の方法はありますか?

0 投票する
4 に答える
17728 参照

c# - TextRenderer.MeasureText の結果の精度

次のように TextRenderer.MeasureText を呼び出します。

結果をコントロールのサイズと比較して、テキストが収まるかどうかを確認します。結果が正しくない場合があります。次の 2 つの問題が確認されました。

  • 多くの場合、Label が AutoSize に設定されている場合、TextRenderer は Control の自動サイズ調整された幅よりも 1 ピクセル広い幅を報告します。
  • TextRenderer がコントロールの幅よりも小さい幅を報告しているが、テキストがまだ途切れている場合の偽陰性。これは "Estación de trabajo" で発生しました -- アクセントが幅の計算に何らかの影響を与える可能性があるかどうかわかりませんか?

MeasureText メソッドの精度を向上させる方法はありますか? デバイス コンテキストやフォーマット フラグを受け入れるオーバーライドの 1 つを呼び出す必要がありますか?

0 投票する
2 に答える
2225 参照

.net - 基になる値を変更せずにDataGridViewセルをフォーマットしますか?

バインドされていないDataGridView(VS 2008)があり、その1つの列にファイルパスが含まれています。基になる値を実際に変更せずに、ColumnWidthChangedイベントでTextRendererクラスを使用して文字列をフォーマットしたいと思います。問題は、フォームを閉じたときにテーブルの内容が保存され、フォーマットされた値を保存したくないということです。私は深すぎて明白な解決策を見ることができないと思うので、皆さんにそれを指摘することに頼っています:-)。

アイデアはこれを表示することです:

C:\ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin \ gacutil.exe

...このように(列の幅に応じて):

C:\ Program Files\Microso…\gacutil.exe


話が早すぎたようです。TextRenderer.MeasureText()から非常に奇妙な結果が得られます。パス値を「C:\ DocumentsandSettings \ jluce \ MyDocuments \ Downloads」としてハードコーディングすると、C:\ Documents and Settings \ jluce \ M ... \ Downloads\0wnloads」になります。 (以下のように)ハードコーディングすると、列のサイズを変更するたびにさらに破損します。

いくつかのサイズを変更した後の様子は次のとおりです。 スクリーンショット

これが私が現在していることです。


これはどんどん変わっていきます!!

私は、各文字を繰り返し処理し、不良文字を削除することで、文字列の破損の問題を解決することができました。しかし、今ではさらにクレイジーな問題が発生しています。イベントハンドラーで割り当てているローカル変数は、呼び出し間でその値を保持しています。

関連するコードは次のとおりです。

初めて列のサイズを変更する(上記のコメントの#を参照):

  1. この行の後、パスには「」が含まれています。
  2. この行の後に、上記のようにPathに文字列が含まれます。
  3. パスには、必要に応じて切り捨てられたファイルパスが含まれています(つまり、「C:\ Documents and Setti ... \ Downloads」)

2回目のサイズ変更:

  1. この行の後に、必要に応じてパスに「」が含まれます。
  2. この行の後、パスには「C:\ Documents and Set ... \ Downloads \ 0 Documents \ Downloads」が含まれています。これは、無効な文字(ここでは「\ 0」として表示)を削除する前の前の反復からの無効な値でした。 !!
  3. ひもをねじ込んだ状態から始めたので、パスはFUBARになりましたが、悪化し続けています。

明示的に値を割り当てているのに、(空の文字列を正しく割り当てた後!)前の関数呼び出しから無効な値がPathに割り当てられるのはなぜですか?!!!!!

0 投票する
2 に答える
1348 参照

c# - Windowsフォームのテキストボックスのテキスト幅をGDI幅に関連付ける

GDI を使用してテキスト ボックスからテキストを描画しています。ただし、GDIで描画しているのと同じ量のスペースを反映するようにテキストボックスを作成しようとしています。したがって、GDI の幅の X 量については、テキスト ボックス内の文字列の長さがこの幅を超えないようにしたいと考えています。

GDI で文字列を描画するには、次を使用しています。

テキストボックスに関しては、文字が入力されると文字列を測定します。

Lucidia Console 8ptをフォントとして使用したテキストボックス自体もあります。

そのため、問題は、GDIで描画している幅と同じ幅のX幅のテキストボックスを作成することになります。

グリフ、em サイズとピクセルの比率、およびその他のトピックについてあらゆる種類の議論に出くわしましたが、解決策はほとんどありません。

何か案は?

0 投票する
3 に答える
1183 参照

iphone - コンテンツの読み込み中にUIWebViewの色を変更する

アプリにUIWebViewがあり、HTML形式のテキスト(バンドルの.plistファイルからロードされたもの)が表示されます。UIWebViewは、画面にテキストをレンダリングするのに約1秒かかり、その間、UIWebView全体が白になります。clearビューの背景色をまたはに設定しようとしましたblackが、何もしませんでした。また、デリゲートメソッドを使用してUIWebViewを表示しようとしましたdidLoadContentが、リクエストが含まれていないため、そのメソッドが呼び出されることはなく、HTML文字列のみをレンダリングしています。

ビューがレンダリングされるまで何も表示しない方法はありますか?

そうでない場合、iPhoneでHTMLテキストをレンダリングする別の方法はありますか?

ありがとうございました。

0 投票する
3 に答える
1128 参照

c# - TextRenderer.DrawText は、XP と Vista で Arial を異なる方法でレンダリングします

シンプルな wysiwyg テキスト エディターと同等の、テキスト レンダリングを行う ac# アプリケーションがあります。

TextRenderer.DrawText を使用してテキストを画面にレンダリングし、GetTextExtentPoint32 を使用してテキストを測定しているため、同じ行にさまざまなフォント スタイル/サイズを配置できます。

Vista では、これで問題なく動作します。ただし、XP では、Arial のレンダリングが異なります。「o」や「b」などの特定の文字は、Vista よりも幅が広くなります。GetTextExtentPoint32 は、Vista と同じように文字列を測定しているようですが、幅が狭くなっています。最終的な結果として、前のテキストが実際の画面上のサイズよりも小さく測定されるため、テキストの実行がその前のテキストと重なることがあります。

また、私のテキスト レンダリング コードは ie のテキスト レンダリングを正確に模倣しており (単純な書式設定と英語のみ)、テキスト レンダリングは vista と xp の間で一貫しているようです。

何が起こっているかについて何か考えがある人はいますか?

つまり、TextRenderer.DrawText と GetTextExtentPoint32 は、Arial の XP では一致しません。DrawText は特定の文字を Vista よりも大きくまたは小さく描画するようですが、GetTextExtentPoint32 は Vista と同じようにテキストを測定しているようです (つまり、XP と Vista の両方でのテキスト レンダリングと一致するようです)。それが理にかなっていることを願っています。

注: 残念ながら、 TextRenderer.MeasureString は私の要件を満たすほど高速でも正確でもありません。私はそれを使用しようとしましたが、それを引き裂かなければなりませんでした。

0 投票する
2 に答える
6394 参照

wpf - テキストレンダリングはまだぼやけています:WPFアプリケーションに最適なフォント?

これは非常に主観的な質問であることは承知していますが、WPF でのテキスト レンダリングは依然として問題であるため、最大限に活用する必要があります。

WPF アプリケーションでは、テキストがぼやけてしまう傾向がありますが、これは周知の事実です。また、このトピックとこの問題を回避する方法に関する無数の Web サイトがあります。しかし、私は疑問に思っています...テキストのぼやけは、他のフォントよりも一部のフォントに影響を与えるようです。そのため、この問題を回避するために利用できる最適なフォントを探しています。

これまでのところ、私はまだ Arial を使用していますが、見栄えがよくありません。しかし、当面の作業には他のフォントの方が適していると確信しています。

0 投票する
1 に答える
1630 参照

winforms - ここで UseCompatibleTextRendering が必要なのはなぜですか?

私は根本的な何かが欠けていると思います。できればどんなものか教えてください。

VS2008 を使用して小さな C++ WinForms アプリを開発しました。そのため、.NET 3.5 SP1 を使用して構築されています。それが重要な場合、私の開発ボックスはWin7です。

このバージョンの VStudio では、WinForms コントロールの UseCompatibleTextRendering プロパティのデフォルト値は false です。そして、これは私にとって重要ではないと思います。カスタム描画のテキストやコントロールはありません。

このアプリは、私の Win7 ボックスでうまく動作しているように見えます。

パッケージ化して (.NET 3.5 に沿ってドラッグ)、WinXP デスクトップの 1 つにインストールすると、ボタンとラベルの見栄えが悪くなります。テキストはそれらの中で切り落とされています。

UseCompatibleTextRendering を true に設定して XP ボックスで実行すると、テキストがボタンとラベルに収まります。

私の質問は:なぜですか?インストールにより、XP ボックスに .Net 3.5 が配置されるため、アプリは適切なバージョンの WinForms を見つけて使用できるはずですよね?

アプリと .NET 3.5 をこれらのボックスに配置する前に、.NET がまったくないことに注意してください。Microsoft の自動更新は取得されません。IT担当者がパッチとアップグレードを管理します。

[この種のことは、私が作成したアプリで以前に発生しました.エンジニアリング マシン上で見栄え/動作が優れているのは、私たちがそれらを維持し、ほとんどが最新のものを持っているためです。企業ボックスで実行する場合、通常は実行されず、VCredist をインストールする必要があります。]

手元の質問に戻ります。UseCompatibleTextRendering を false に設定すると、テキストの見栄えが良くなるので、できればそのままにしておきたいと思います。テキストが収まらない原因で、これらの XP ボックスに何が欠けているのかを理解したいと思います。

ありがとう

S

0 投票する
3 に答える
2022 参照

scala - Textrenderer を使用したテキストの回転

こんにちは、JOGL を使用して 2D シナリオでテキストを表示したいと思います。しかし、com.sun.opengl.util.j2d.TextRenderer を使用してテキストを回転する方法がわかりません。回転に関するメソッドはありません。だから私は、モデルビューマトリックスが回転に影響を与えることを期待していました.

何か助けを知っていますか?