有客户报告说,我们的软件在他的一台计算机上运行时会挂起。我们缩小了问题的范围,使用FormattedText呈现文本,并为他提供了一个简单的应用程序供他尝试,这些应用程序只呈现具有不同字体参数的文本 - 这也会挂起。.NET:绘制文本挂起 - 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,但这没有帮助。
有没有人遇到类似的问题?任何想法如何解决,解决或至少找出更多关于这个问题的原因是什么?
谢谢。
详细信息您是否尝试过更新/降级的图形卡驱动程序?可以肯定的是,罪魁祸首究竟是从调试器还是进程管理器获取堆栈。如果最终挂在驱动程序中,它可能是硬件或软件,但无论如何你都无法直接解决问题。如果它在DirectX或内核中......我不知道可能通过MSDN联系micsosoft支持。 – 2010-08-17 15:22:02