Клиент сообщил, что наше программное обеспечение зависает, когда он запускает его на одном из своих компьютеров. Мы сузили проблему до рендеринга текста с помощью FormattedText и создали для него простое приложение, которое просто рендерит некоторый текст с другими параметрами шрифта - это тоже зависнет.
Вот фрагмент кода, который выполняет фактическое рисование текста:
Typeface typeface = new Typeface(m_Font, m_FontStyle, m_FontWeight, FontStretches.Normal);
FormattedText ftext = new FormattedText(m_Text, new CultureInfo("en-US"), FlowDirection.LeftToRight, typeface, m_FontSize, m_FontColor);
ftext.TextAlignment = CenterText ? TextAlignment.Center : TextAlignment.Left;
if (m_DrawOutline)
{
Geometry geom = ftext.BuildGeometry(CenterText ? new Point(ftext.Width, 0) : new Point());
dc.DrawGeometry(m_FontColor, DrawOutline ? new Pen(m_OutlineColor, m_OutlineWidth) : null, geom);
}
else
dc.DrawText(ftext, CenterText ? new Point(ftext.Width, 0) : new Point());
Программа просто перестает отвечать на запросы при вызове методов ftext.BuildGeometry, dx.DrawText или свойства ftext.Width независимо от используемых параметров шрифта и текста. Это происходит только на одном компьютере, который является ноутбуком с сенсорным экраном (не уверен, что это актуально) под управлением Windows 7. Мы уже пытались переустановить .NET Framework, но это не помогло.
Кто-нибудь сталкивался с подобной проблемой? Любые идеи, как исправить, обойти или хотя бы узнать больше, в чем причина этой проблемы?
Спасибо.