Winforms .net windows窗体&;选择Vista字体

Winforms .net windows窗体&;选择Vista字体,winforms,fonts,Winforms,Fonts,我正在用windows窗体构建一个.net应用程序。我正在思考以下问题:如果我在应用程序中指定只能在Vista和Office 07中使用的字体,当应用程序尝试在没有这些字体的机器上运行时会发生什么 我认为系统将无法退回到其系列的字体,因为它们是使用字符串(例如“SegoeUI”)在内部初始化的 要遵循的最佳实践是什么,这样我仍然可以通过forms designer指定字体,而不必担心这样的问题?首先在Office和Vista中检查EULA,以确保字体不神圣,但是,您可以将这些字体包含在安装程序包

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

我认为系统将无法退回到其系列的字体,因为它们是使用字符串(例如“SegoeUI”)在内部初始化的


要遵循的最佳实践是什么,这样我仍然可以通过forms designer指定字体,而不必担心这样的问题?

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

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

我同意Brian Cline的观点,如果你能将它们包括在内,那就最好了

一个很好的方法是在你的系统上启动一个虚拟机,然后在上面安装这个程序。微软有一个名为“微软虚拟PC”的免费虚拟机程序。使用此功能,您可以加载虚拟机中的任何操作系统,并测试应用程序在“干净”安装环境中的反应。它的作用与普通计算机相同,只有您专门安装的程序。我将其用于我的winforms应用程序,效果非常好

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

除非安装程序能够重新分发字体,否则您可能必须首先检查所述字体是否存在。如果没有,请让你的应用程序从静态备用选项列表中选择一种替代字体。

我认为是
System.Drawing.SystemFonts.MessageBoxFont
根据操作系统提供了Segoe UI、Tahoma和MS Sans Serif。只要您的布局足够流畅——WPF擅长于此,但在Windows窗体中要困难得多——那么它就会工作得很好。无论如何,使用该设置然后在虚拟机中测试它是否有效是值得的

同样不幸的是,设计师不支持这样设置字体,有时它会将内容重置为硬编码的Segoe UI(如果您使用的是Vista)


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

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

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


如果你真的想与众不同,那么接受贾斯珀的建议,检测XP和Vista。如果您使用XP,请使用Tahoma或Trebuchet MS。如果您使用Vista,请继续使用酷炫的新字体。

根据EULA,这是不可能的。@JFV我知道解决方案,我有很多虚拟机,但没有XP虚拟机。我想在这里问一下可以省去我的麻烦。但我仍然希望听到最佳实践。