Я использую специальный шрифт, известный как Pigiarniq , в приложении WPF. Я обнаружил, что время от времени слова исчезают из текстовых блоков, в которых используется этот шрифт. Слова, которые исчезают, появились бы в конце строки, в которой они находятся, или, возможно, на следующей строке, что заставляет меня думать, что что-то не так с переносом текста. В конце концов (после значительных трудностей) я изолировал проблему от небольшого фрагмента кода (ПРИМЕЧАНИЕ: это всего лишь тест, подтверждающий, что проблема возникает. Это не часть моей программы):
You do not need to enter both manually. Rates are calculated using true depositional
(uncompacted) thicknesses, rather than measured present-day thicknesses.
Слово «толщина», которое встречается после "(несжатый)" не появляется. Если я вручную изменю размер окна с помощью дескриптора окна, оно появится снова.
ПРИМЕЧАНИЕ. Я поместил TextBlock в элемент Grid выше, потому что иногда эта проблема возникает, когда TextBlock находится в Grid. В другом случае это было внутри InlineUIContainer. Были и другие случаи.
Я обнаружил, что такого поведения не происходит, если я задаю ширину явно, например, если я подписываюсь на событие Loaded в TextBlock:
private void textBlock1_Loaded(object sender, RoutedEventArgs e)
{
textBlock1.Width = textBlock1.ActualWidth;
//textBlock1.Width = Double.NaN; //if you leave this in, you get the bad behaviour
}
Очень странно! Есть идеи, как этого не допустить? Мой босс очень хотел бы использовать этот шрифт, поэтому я не могу просто выбрать другой шрифт (я никогда не видел, чтобы это происходило с любым другим шрифтом). Мне также не очень нравится следить за каждым изменением макета и соответствующим образом изменять размер каждого текстового блока, который использует Pigiarniq.