客户报告说,当他在他的一台计算机上运行时,我们的软件会挂起。我们缩小了使用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但这没有帮助。
有没有人遇到过类似的问题?任何想法如何修复,解决或至少找出更多关于这个问题的原因是什么?
感谢。
答案 0 :(得分:1)
从未亲身遇到过这个问题,我在家里使用Windows 7。但是,如果它只在一台机器上,那么可以肯定的是,该问题与软件无关。我要尝试的第一步是下载最新的视频显示驱动程序并安装它们。如果它仍然给您一个问题,请尝试启动到安全模式并查看它是否会运行。
答案 1 :(得分:1)
由于演示字体缓存损坏,我发生了这个问题。
停止字体缓存服务,删除文件%systemdrive%\ Documents and Settings \ LocalService \ Local Settings \ Application Data \ FontCache3.0.0.0.dat(xp)并重新启动。
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/7cc032c1-5f4d-4518-adc6-f53afd051e6b
的详细信息