2

ここで問題とその再現方法を確認できます。

欠落した単語の問題

この問題により、テキスト ブロック内の最も長い行の末尾で単語が途切れます。最後TextBlockに「animals」という単語がないことに注意してください。

この問題の回避策を知っている人はいますか? またはそれに関する情報はありますか?基本的に、2 番目のレンダリングとレイアウトの動作を維持する必要がありますTextBlockが、すべての単語が存在するだけです。

XAML 再現コード:

<Window x:Class="TextWeirdness.Application.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel>

        <StackPanel.Resources>
            <Style TargetType="TextBlock">
                <Setter Property="Text" Value="{Binding Text, ElementName=ATextBox}"/>
                <Setter Property="FontSize" Value="{Binding Value, ElementName=ASlider}"/>
                <Setter Property="FontFamily" Value="Arial"/>
                <Setter Property="HorizontalAlignment" Value="Left"/>
                <Setter Property="TextWrapping" Value="Wrap"/>
            </Style>
        </StackPanel.Resources>

        <Slider Name="ASlider" Minimum="1" Maximum="30" Value="12" />
        <TextBox Name="ATextBox" Text="I love mules - best of all the animals" AcceptsReturn="True"/>

        <TextBlock />
        <TextBlock TextOptions.TextFormattingMode="Display"/>
    </StackPanel>
</Window>

詳しくは:

  • 問題は、ハイフン (マイナス記号のみ) がテキストに含まれている場合にのみ発生します。
  • フォントサイズが特定の繰り返し範囲内にある場合にのみ発生します(ただし、それが何であるかはわかりません)。
  • 特定のフォントでのみ発生します。
    • アリアル
    • バクストンのスケッチ
    • カリブリ
    • カリブリライト
    • カンブリア
    • カンブリア数学
    • コンスタンシア
    • コーベル
    • ドクチャンパ
    • ユーフェミア
    • グローバルモノスペース
    • グローバル サンセリフ
    • グローバルセリフ
    • モンゴルバイティ
    • ニアラ
    • パラティーノライノタイプ
    • タイムズ ニュー ローマン
4

2 に答える 2

1

取り外して頂けましたら

<Setter Property="TextWrapping" Value="Wrap"/>

それは回避策として機能します...

これはバグであり、Microsoft Connect サイト経由で報告する必要がありますが、すぐに修正されることをためらわないでください。実際には、おそらく修正されることはありません。

私の経験によると、過去数年間、Microsoft は対応するのに (あったとしても) 6 か月以上かかり、ほとんどのバグは設計によるものとして分類されます。 "。私の見積もりでは、これが .NET 5.0 で修正される可能性は 5% 未満です。

于 2013-08-21T11:10:54.917 に答える