2013-10-31 5 views
5

C#アプリケーションでstringにアンダーラインを付ける必要があります。これは、文字列がエクスポートされてワードファイルに表示されるため、ユニコードで行う必要があります。これを行うには、私は働く下線ユニコード\u0332ですべての文字を先行しますが、このスクリーンショットで見られるように、それは完全に「M」の文字に下線を引きません。私は\u0332数回の前に試してみましたユニコードアンダーラインで一部の文字に完全な下線が付いていない

enter image description here

前と後の出力は常に同じです。

文字に完全に下線を付ける方法はありますか?

編集:私はちょうど連続した下線ユニコード記号\u2381を使ってみましたが、それはまったく表示されません。

答えて

4

U + 0332はUnicode combining characterであるため、の後にistはになります。しかし、これは、文字に下線を付けることを指定するだけです。特定のグラフィック表現は、アプリケーションとそのレンダリングエンジンによって異なります。どこでも完全にサポートされているわけではありません。テキストi̲m̲p̲o̲r̲t̲a̲n̲t̲をアプリケーションに貼り付け、意図したとおりに動作するかどうか確認してください。そうでない場合は、*important*またはIMPORTANTなどの別の表現を使用するか、サポートされているリッチテキスト形式(RTF、docxなど)でエクスポートする以外は、何もできません。

+0

ありがとうございました。これはMS Wordの.docxドキュメントです。私はこれをサポートし、適切にレンダリングすると思います。私はアプリケーションが '< >'カッコで囲まれたタグのためのテンプレート文書を見て、それをアプリケーション内の対応する名前の 'string'変数の内容で置き換えているので、まあまあです。 – Saggio

+0

なぜWord文書でUnicodeハックを使用して*何かをフォーマットしていますか? –

+1

@ R.MartinhoFernandesこれは理想的な状況ではありません。これはレガシーアプリケーションであり、このリクエストが初めて発生したことです。たとえば、テンプレート化されたWord文書は単に「」と類似していて、アプリケーションは「」をアプリケーションの 'results'文字列に置き換えます。その中には、文字列に含まれる1つの単語があります下線を引く。これは実行時に行われるので、テンプレート自体の中でテキストをフォーマットする方法はなく、アプリケーション側でフォーマットする必要があります。 – Saggio

関連する問題