silverlight2应用程序中的模糊字体

silverlight2应用程序中的模糊字体,silverlight,fonts,Silverlight,Fonts,我做了我的第一个Silverlight 2应用程序,最让人恼火的是文本字体看起来模糊或粗糙 你可以在这里看到: 这是SL的“功能”还是我做错了什么 我知道SL2使用了一些奇特的技术使应用程序与设备无关,但这种字体是不可接受的(我使用的是Vista和Aero) 额外的问题:SL2中是否有任何参考业务应用程序 致以最良好的祝愿 Tomasz抗锯齿只是Silverlight的一个功能;但我不会说它看起来很模糊,我很喜欢它 参考方面,我认为我没有看到一个完整的应用程序示例,但如果您使用IPropert

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

你可以在这里看到:

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

我知道SL2使用了一些奇特的技术使应用程序与设备无关,但这种字体是不可接受的(我使用的是Vista和Aero)

额外的问题:SL2中是否有任何参考业务应用程序

致以最良好的祝愿


Tomasz

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


参考方面,我认为我没有看到一个完整的应用程序示例,但如果您使用IPropertyNotifyChanged/ObservableCollection查看模型视图ViewModel并浏览的博客,他们有大量关于数据传输和多页应用程序的信息,这两个应用程序都需要做“业务应用程序”WPF和Silverlight上的ClearType字体呈现实现就是这样设计的。文本动画设置得很流畅,但看起来很模糊。

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

  • 你可以忽略常识,只需按原样发布软件——让字体更大,你拥有什么。只要你的客户买了,有什么问题?(但这不是我的选择)
  • 如果您正在使用Silverlight,您可以等到将来的某个版本,直到这个问题得到解决(WPF也是如此)。祝你好运看看WPF已经存在多久了,每个人都知道这个问题,猜猜看,它还没有被修复
  • 如果您使用WPF,您可以获得完美的字体渲染——这一算法甚至比Vista稍好一点(让我们面对现实,它近乎完美)。WinForms也是如此。理想ClearType的算法是明智地使用亚像素渲染、抗锯齿和字体暗示(如果可用)的混合。我已经做到了这一点,甚至为SIMD等进行了优化。不过,这是对你时间的重大投资
  • 像素字体。我自己也没试过,但应该能用
  • 预渲染位图。哦,是的,如果你想降低速度,那就去吧。话虽如此,但我认为前提是您知道自己正在利用硬件加速

我想我想说的是:WPF/WinForms有一个解决方案(是的,WinForms
ClearTypeGridFit
也不是最好的算法),但Silverlight没有解决方案。然而我希望有人能证明我错了。

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

我希望我能提供这些资源的链接:)我的意思是,没有这样的东西,我怀疑做过这件事的人会提供他们如何成功的源代码。这主要是因为所需的工作量令人难以置信

我是这样做的。首先,我找到了理想的(或者说几乎是)ClearType类算法——这是一种专门为我工作的算法(请注意,不受影响,但考虑到性能成本,我不会介意)。然后,我将它连接到.NET中,这样我至少可以用文本呈现位图(我有一个可以显示它的实例)。因此,我对算法进行了微调,使其可以代替标签使用。我的应用程序充满了标签,所以我做了这些。(你可以想象,文本框可能要复杂得多)。就这样


从链接中可以看到,在Silverlight中也可能获得良好的ClearType样式文本。我只花了2天的时间连接一个web服务来呈现文本,速度相当慢,但我认为对于标签之类的东西,没有理由这样做——特别是缓存和其他技巧——做不到。

你能提供有关如何使用WPF实现完美字体呈现的文章/示例的链接吗?