silverlight2应用程序中的模糊字体

时间:2009-01-26 09:00:43

标签: silverlight fonts

我做了我的第一个Silverlight 2应用程序,令人烦恼的是文本字体看起来模糊或粗糙。

你可以在这里看到:

alt text http://img516.imageshack.us/img516/1444/blurryfonthp3.png

这是SL的“功能”还是我做错了什么?

我知道SL2使用了一些奇特的技术来使应用程序设备独立,但这种字体是不可接受的(我正在使用带有Aero的Vista)。

红利问题:SL2中是否有参考商业申请?

致以最诚挚的问候,

托马斯

4 个答案:

答案 0 :(得分:5)

肯定说它看起来很模糊 - 有点像你在OSX或Linux上查看它。我也同意这是不可接受的 - 当然,与WPF一起,字体渲染也很糟糕。现在,虽然微软一直承诺为.NET 4版本修复此问题,但事实是,我们当中许多人今天需要发布/销售这些东西,这导致了以下选择:

  • 您可以忽略常识并按原样发送 - 使字体更大,让您拥有什么。只要您的客户购买,问题是什么? (不是我的选择)
  • 如果您正在使用Silverlight,您可以等到将来发布,直到修复此问题(WPF相同)。祝好运。看看WPF已经存在了多长时间,每个人都知道这个问题,猜猜是什么 - 它还没有修复。
  • 如果您正在使用WPF的工作,你的可以的获得完美的字体渲染 - 一种算法,甚至略好于Vista做了什么(其中,让我们面对它,是近乎完美的)。 WinForms也是如此。理想ClearType的算法是明智地使用子像素渲染,抗锯齿和使用字体提示(如果可用)的混合。我已经做到了这一点,甚至为SIMD等优化它也很有乐趣。但 是你时间的重要投资。
  • 像素字体。我自己没试过,但它应该有效。
  • 预渲染位图。哦,是的,如果你想要杀死速度,请继续。话虽如此,我认为这是acceptable,只要你知道你正在利用硬件加速。

我猜我想说的是这样的:有的为WPF / WinForms的解决方案(是的,WinForms的ClearTypeGridFit是不是最好的算法要么),但有不是 Silverlight的解决方案。然而。我希望有人能证明我错了。

答案 1 :(得分:4)

抗锯齿只是Silverlight的一个功能;不会说它看起来很模糊,我非常喜欢它。

参考方面,我认为我见过的应用程序示例并不完整,但如果您使用IPropertyNotifyChanged / ObservableCollection查看Model-View-ViewModel并浏览Jesse Liberty的博客, Shawn Wildermuth他们有大量关于数据传输和多页面应用程序的信息 - 这两者都需要您做一个“业务应用程序”

答案 2 :(得分:3)

WPF和Silverlight上的ClearType字体呈现实现是以这种方式设计的。文字动画流畅,但看起来很模糊。

答案 3 :(得分:0)

我会用完另一个答案位,因为这里有很多话要说。

我希望我可以提供这些资源的链接:)我的意思是,那里没有这样的东西,而且我怀疑那些做过它的人会得到他们如何把它拉下来的源代码。这主要是因为所需的大量工作令人难以置信。

这是我如何去做的。首先,我发现了理想的(或几乎)类似ClearType的算法 - 专门为我工作的东西(没有提示,请注意,但考虑到性能成本,我无法打扰)。然后,我将它连接到.NET,这样我至少可以使用文本呈现位图(我有一个Silverlight test page显示它在运行中)。因此,我将算法微调到可以用来代替例如标签的程度。我的应用程序充满了标签,所以我做了那些。 (文本框可能比你想象的要复杂得多)。就是这样。

正如您从链接中看到的那样,也许可以在Silverlight中获得良好的ClearType样式文本。我只花了2天时间连接一个Web服务来渲染文本,而且速度相当慢,但我认为对于像标签这样的东西,没有理由为什么这样的东西 - 尤其是缓存和其他技巧 - 无法完成。