【解決方法】フォント サイズが 99 を超えるとテキストブロック内のテキストが消えます

プログラミングQA


WPF (4.0) では、テキスト サイズが 100 以上の場合、少なくとも 1 つの ttf フォントが消えることがわかりました。 これは既知のバグですか?

例えば
これは次のように見ることができます。

XML
<TextBlock x:Name="tb" FontFamily="Roboto" FontSize="99" Text="abcdef" HorizontalAlignment="Left" VerticalAlignment="Top" />

これでは次のことはできません:

XML
<TextBlock x:Name="tb" FontFamily="Roboto" FontSize="100" Text="abcdef" HorizontalAlignment="Left" VerticalAlignment="Top" />

これは、レンダリング変換によってテキストが拡大される場合にも当てはまります。

これは次のように見ることができます。

XML
<Grid Height="200">
  <TextBlock x:Name="tb" FontFamily="Roboto" FontSize="50" Text="abcdef" />
  <Grid.RenderTransform>
  <ScaleTransform ScaleX="1.9999" />
  </Grid.RenderTransform>
  </Grid>

しかし、これはできません:

XML
<Grid>
  <TextBlock x:Name="tb" FontFamily="Roboto" FontSize="50" Text="abcdef" />
  <Grid.RenderTransform>
  <ScaleTransform ScaleX="2" />
  </Grid.RenderTransform>
  </Grid>

テキストブロック:
1) 依然として適切に配置されており、実際の高さと実際の幅の値は適切です。
2) 通常の不透明度と可視性の値を持つ
3)背景がある場合、背景は細かく/適切なサイズで表示されます。

次の点にも注目してください。
1) このフォントは Google 製で、それ以外の場合は問題なく動作するようです。 フォントエディターで開いてみましたが、正常に見えます
2)これはTTFフォントです
3)フォントはMS Wordなどですべてのフォントサイズで正常に機能しますが、
4)このフォントを大きなサイズで含む Ms Word ファイルを XPS に発行すると、そのフォントは XPS ドキュメント内で非表示になります (選択可能ですが、表示されません。不透明度が 0 であるかのように)。
4)これはコンテンツ コントロールとテキストボックスにも当てはまります

私が単に「別のフォントを選択」しない理由は、私のプログラムがこのようなフォントをたくさん使用しているからです。 いちいち手動でチェックするのは無理!

これを見たことがありますか? 何か案は?

フォントは以下からダウンロードできます ここ[^]

解決策 1

Microsoft のドキュメントを読みましたが、FontSize の制限については何も記載されていません。 以下に参考として「いいね!」を貼り付けました。

http://msdn.microsoft.com/en-us/library/office/aa200988%28v=office.10%29.aspx[^]

[^]

私からのアドバイスは、Microsoft WPF フォーラムに行き、Microsoft 従業員が回答したこの質問をすることです。 これはプログラマーにとって一般的な問題ではないと思いますが、次のことはわかりません。

[^]

解決策 2

最終的に、textformattingmode を次のように指定することでこの問題を解決しました。 画面

XML
<textblock fontfamily="Roboto" fontsize="110" text="abcdef" textoptions.textformattingmode="Display" />

解決策 3

モードを理想に設定するとうまくいきました。

コメント

タイトルとURLをコピーしました