Silverlight2应用中字体模糊问题

5
我做了我的第一个Silverlight 2应用程序,让我烦恼的是字体看起来模糊或粗糙。你可以在这里看到:alt text http://img516.imageshack.us/img516/1444/blurryfonthp3.png。SL2使用了一些花哨的技术使应用程序不依赖设备,但这种字体是不能接受的(我正在使用带有Aero的Vista)。额外的问题是:SL2中是否有任何参考商业应用程序?祝好!Tomasz
4个回答

5
我会毫不犹豫地说它看起来很模糊——就像您在OSX或Linux上查看此内容一样。我也同意这是不可接受的——当然,还有WPF,在那里字体渲染也很糟糕。现在,虽然Microsoft一直承诺在.NET 4发布时解决这个问题,但事实是,我们中的许多人需要今天就出货/销售东西,这导致了以下选择:
  • 你可以忽略常识,直接按原样发布软件 - 放大字体等等。只要你的客户购买,有什么问题呢?(虽然这不是我的选择)
  • 如果你正在使用Silverlight,你可以等到未来某个版本修复此问题(WPF也一样)。祝你好运。看看WPF已经存在多长时间了,每个人都知道这个问题,猜猜怎么着 - 它还没有被解决。
  • 如果你正在使用WPF,你可以获得完美的字体渲染 - 一种算法,甚至比Vista做得更好(让我们面对现实,它几乎是完美的)。同样适用于WinForms。理想的ClearType算法是巧妙地使用亚像素渲染、抗锯齿和使用字体提示(如果可用)的混合物。我已经做到了这一点,甚至还乐在其中优化SIMD等内容。但需要花费你大量的时间。
  • 像素字体。我自己没有尝试过,但应该可以。
  • 预渲染位图。哦,是的,如果你想降低速度,就去吧。话虽如此,我认为只要你知道你正在利用硬件加速,这是可以接受的。
我想说的是:针对WPF/WinForms(是的,WinForms的ClearTypeGridFit算法也不是最好的算法),有一种解决方案,但是针对Silverlight,目前没有解决方案。我希望有人能证明我是错的。

你能提供关于如何在WPF中获得完美字体渲染的文章/示例链接吗? - tomo

4
抗锯齿只是Silverlight的一个特性;虽然不会说它看起来模糊,但我非常喜欢它。
参考方面,我认为我没有看到过完整的应用程序示例,但如果你研究使用IPropertyNotifyChanged / ObservableCollection的Model-View-ViewModel,并浏览Jesse LibertyShawn Wildermuth的博客,他们有大量关于数据传输和多页面应用程序的信息 - 这两者都是你需要做“业务应用程序”的必备内容。

3
在WPF和Silverlight上,ClearType字体呈现实现的设计方式是这样的。文本可以平滑动画,但看起来有点模糊。

0

我会使用另一个回答的空间,因为这里有很多要说的。

我希望我能提供此类资源的链接 :) 我的意思是,这样的东西不存在,我怀疑那些做过的人也不会公开他们如何完成的源代码。这主要是因为需要的工作量是惊人的。

下面是我的方法。首先,我找出了理想的(或几乎理想的)ClearType 算法 - 这是适用于我自己的算法(请注意,这是未经提示的,但考虑到性能成本,我不能再费心)。然后,我将它连接到 .NET 中,以至少能够呈现带文本的位图(我有一个 Silverlight 测试页面,可以展示它在运行中的效果)。随后,我微调了算法,使之能够代替例如标签的元素。我的应用程序充满了标签,所以我对它们进行了处理。(你可以想象,文本框可能会更加棘手)。就这样。

从链接中可以看出,在Silverlight中也可能获得良好的ClearType风格文本。我只花了两天时间编写一个Web服务来呈现文本,速度相对较慢,但我认为对于像标签这样的东西,没有理由不能做到这样的事情 - 特别是通过缓存和其他技巧。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接