Странные результаты TextBlock.TextWrapping - PullRequest
1 голос
/ 10 января 2012

Я запускаю новое приложение WPF и вставляю следующий код в MainWindow.xaml

<Canvas>
<TextBlock Text="Kammer 123" 
           MaxWidth="80"
           Padding="5, 0"
           TextWrapping="Wrap" 
           TextAlignment="Center" />
</Canvas>

Ожидаемый результат - рендеринг TextBlock "Kammer 123" в верхнем левом углу, но я вижу только«Камеры».Если я изменю свойство Text на «Kammer 1234» или «Kammer 12» или «Kammer abc», рендеринг будет правильным.С "Kammer 12345" текст переносится правильно.Это ошибка или особенность, которую я не понимаю?

1 Ответ

2 голосов
/ 10 января 2012

Очень интересный баг!Я могу подтвердить ваши результаты.В 32-битной Windows XP с разрешением 96 точек на дюйм «123» обрезается, но другие последовательности отображаются правильно.В 64-битной Windows 7 при 120 dpi все строки отображаются правильно.Так что это действительно ошибка текстового макета WPF, либо для 96 dpi, либо для 32-битного.

Некоторые эксперименты показывают, что виновна линия Padding.Удалите эту строку или уменьшите горизонтальное заполнение до 1, и текст отобразится правильно.Альтернативой может быть использование Margin вместо Padding, что, кажется, работает.

...