2008-10-31 76 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,請繼續使用酷炫的新字體。