2008-10-31 83 views
3

我正在用windows窗体构建一个.net应用程序。我在思考以下问题:如果我在我的应用程序中指定仅在Vista和Office 07中可用的字体,当应用程序尝试在没有这些的机器上运行时会发生什么?.net windows窗体和挑选Vista字体

我想系统将不能回退到它的系列字体,因为它们在内部使用字符串进行初始化(例如“Segoe UI”)。

要遵循的最佳实践是什么,这样我仍然可以通过表单设计器指定字体,而不用担心这样的事情会中断?

回答

2

我认为这是System.Drawing.SystemFonts.MessageBoxFont,使Segoe UI,Tahoma,然后MS Sans Serif取决于操作系统。只要你的布局足够流畅--- WPF很擅长这一点,但在Windows窗体中则更加困难 - 那么它将工作得很好。无论如何,这是值得使用的设置,然后在虚拟机中测试,看看它是否工作。

此外,设计师并不支持设置字体,并且有时会重置硬编码的Segoe UI(如果您使用的是Vista)。

这种事实际上是我开始转移到WPF的原因之一:)。

0

首先在Office和Vista中检查EULA,以确保字体不是神圣的,但是您可以将这些字体包含在安装程序包中并安装它们。

+0

根据EULA,这是不可能的。 – KCorax 2008-10-31 18:55:52

2

检查操作系统并在XP上使用Tahoma和在Vista上使用Segoe UI,或让用户在选项对话框中选择。在XP上安装Segoe UI似乎被认为没有被大多数人所完成。

1

我同意布赖恩克莱恩,如果你可以包括他们那将是最好的。

查看干净的操作系统会发生什么的好方法是在系统上启动虚拟机并在其上安装程序。微软有一个名为“Microsoft Virtual PC”的免费虚拟机程序。使用它,您可以加载虚拟机中的任何操作系统,并测试应用程序在“干净”安装环境中的反应。它的作用与普通电脑相同,只会安装专门安装的程序。我将它用于我的winforms应用程序,它效果很好!

让我知道这是否有帮助! JFV

+0

@JFV我知道解决方案,我有很多的虚拟机,但不是XP的。我认为在这里问这个问题可以省去我的麻烦。尽管如此,我还是希望听到最佳做法。 – KCorax 2008-10-31 19:02:48

0

禁止在安装程序中重新分配字体的功能,您可能需要先检查是否存在所述字体。如果它们不在那里,请让您的应用程序从静态选择列表中选择一种替代字体。

1

要么采取贾斯珀的建议,要么跟随我的:不要这样做。除非你出于某种原因重新整合了应用程序,否则只需使用系统中已定义的字体即可。如果你看起来像其他战舰灰色(或轻度主题)的应用程序,除了字体,它看起来有点奇怪的用户。

无论哪种方式,包括字体都是违反EULA的。用户可以下载Office 2007兼容包,并获得他们,但一个值得注意的例外将是(我相信)Segoe UI:这种字体是Vista的唯一字体。

如果您确实想要与众不同,那么请采取Jasper的建议并检测XP vs Vista。如果你使用XP,可以使用Tahoma或Trebuchet MS。如果您使用的是Vista,请继续使用酷炫的新字体。