我正在使用 Windows 窗体构建一个 .net 应用程序。我正在思考以下问题:如果我在应用程序中指定了仅在 Vista 和 Office 07 中可用的字体,当应用程序尝试在没有这些的机器上运行时会发生什么?
我想系统将无法回退到它的家族字体,因为它们是使用字符串在内部初始化的(例如“Segoe UI”)。
要遵循的最佳做法是什么,这样我仍然可以通过表单设计器指定字体,而不必担心这样的问题?
检查操作系统并在 XP 上使用 Tahoma,在 Vista 上使用 Segoe UI,或者让用户在选项对话框中进行选择。在 XP 上安装 Segoe UI 似乎被大多数人认为没有完成。
我认为这是System.Drawing.SystemFonts.MessageBoxFont
根据操作系统提供 Segoe UI、Tahoma 和 MS Sans Serif 的原因。只要你的布局足够流畅——WPF 擅长这一点,但在 Windows 窗体中它更难——那么它就会很好用。无论如何,值得使用该设置然后在虚拟机中进行测试以查看它是否有效。
同样不幸的是,设计师不支持这样设置字体,有时它会将东西重置为硬编码的 Segoe UI(如果您使用的是 Vista)。
这种事情实际上是我开始转向 WPF 的原因之一 :)。
我同意 Brian Cline 的观点,如果你能把它们包括在内,那将是最好的。
查看干净操作系统会发生什么的一个好方法是在您的系统上启动虚拟机并在其上安装程序。Microsoft 有一个名为“Microsoft Virtual PC”的免费虚拟机程序。使用它,您可以在虚拟机中加载任何操作系统并测试您的应用程序在“干净”安装环境中的反应。它的作用与普通计算机相同,并且只有您专门安装的程序。我将它用于我的 winforms 应用程序,效果很好!
让我知道这是否有帮助!联合部队
要么接受 Jasper 的建议,要么听从我的建议:不要这样做。除非您出于某种原因重新设计整个应用程序,否则只需使用系统上已定义的字体即可。如果你看起来像所有其他战舰灰色(或温和主题)应用程序,除了字体,它对用户来说看起来有点奇怪。
无论哪种方式,包括字体都是违反 EULA 的。用户可以下载 Office 2007 兼容包并获得其中的大部分,但一个值得注意的例外是(我相信)Segoe UI:这种字体是仅适用于 Vista 的字体。
如果您确实想与众不同,那么请听从 Jasper 的建议并检测 XP 与 Vista。如果您使用的是 XP,请使用 Tahoma 或 Trebuchet MS。如果您使用的是 Vista,请继续使用酷炫的新字体。
首先在 Office 和 Vista 中检查 EULA 以确保字体不是神圣的,但您可以将这些字体包含在安装程序包中并让它安装它们。
除非能够在安装程序中重新分配字体,否则您可能必须首先检查所述字体是否存在。如果它们不存在,请让您的应用从备用选项的静态列表中选择替代字体。