2010-08-17 39 views
0

有客户报告说,我们的软件在他的一台计算机上运行时会挂起。我们缩小了问题的范围,使用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,但这没有帮助。

有没有人遇到类似的问题?任何想法如何解决,解决或至少找出更多关于这个问题的原因是什么?

谢谢。

+1

详细信息您是否尝​​试过更新/降级的图形卡驱动程序?可以肯定的是,罪魁祸首究竟是从调试器还是进程管理器获取堆栈。如果最终挂在驱动程序中,它可能是硬件或软件,但无论如何你都无法直接解决问题。如果它在DirectX或内核中......我不知道可能通过MSDN联系micsosoft支持。 – 2010-08-17 15:22:02

回答

1

从未亲自遇到过这个问题,我在家中使用Windows 7。但是,如果它只在一台机器上,那么这个问题与软件无关是安全的。我会尝试的第一步是下载最新的视频显示驱动程序并进行安装。如果它仍然给你一个问题,请尝试启动到安全模式,看看它是否会运行。

+0

感谢您的回复。我们已经尝试安装最新的grahpics驱动程序(这是一个ATI卡),但这并没有帮助...我会让客户尝试安全模式。它会告诉我们它是否在安全模式下工作? – Lukasz 2010-08-19 12:48:55

+0

如果它在安全模式下工作,那么它会告诉我安装的驱动程序或软件应用程序会干扰您的程序的运行。也许病毒扫描也许是必要的? – Icemanind 2010-08-19 17:13:38