前言中,我需要使用: * ClickOnce部署 *條形碼字體 *使用「FontName」而無法訪問Font對象的DevExpress控件,使我無法使用PrivateFontCollection。 *字體必須靜默安裝,並在安裝後立即運行。如何使ClickOnce應用程序知道新字體?
DevExpress使我無法使用PFC的部分是RichEditControl中的CharacterProperties對象。他們的支持網站已經有一張票,以「對不起,我們不能使它與PrivateFontCollection一起工作」結束。
我已經閱讀了很多來源,並且一直髮現ClickOnce在安裝時不能立即使用字體。我使用P/Invoke來安裝字體,因爲我無法使用PFC。我創建了一個完全獨立的控制檯應用程序來完成這種字體安裝,並且字體在Word中顯示,但它不會顯示在我的ClickOnce應用程序中,即使我在Word之後打開它。我可以通過正常的Windows點擊方法手動安裝字體,並且它可以在Word和ClickOnce中顯示。
我System.Drawing.Font證實,這是不可用的整個應用程序,而不僅僅是一個挑剔供應商的控制:
Font fontTester = new Font(fontName, 12, FontStyle.Regular, GraphicsUnit.Pixel);
if (fontTester.Name == fontName)
「名稱」的值更改爲「微軟無襯線」,演技就好像字體不可用一樣。
如何在沒有重新啓動/註銷的情況下在ClickOnce中顯示字體?
你不能 - 正如我所說的,「我創建了一個完全獨立的控制檯應用程序來完成這種字體安裝」。問題是,即使它已安裝,ClickOnce應用程序不會識別它。正如我所說的,System.Drawing.Text是一個測試,以證明它不僅僅是控制。這是我需要的控件,但我甚至無法將它放入ClickOnce沙盒中。 – Merennulli