2012-03-06 43 views
0

我試圖嵌入字體使用下面的代碼,我發現從這個網站,但正如我試圖建立,我不斷遇到錯誤'DIGITALDREAMNARROW' is not a member of 'Resources'.。任何人都可以幫助我在哪裏做到這一點:如何嵌入用於Visual Basic項目的字體?

即使我已將字體添加到資源文件夾。有什麼我失蹤?

http://zerosandtheone.com/blogs/vb/archive/2009/11/20/vb-net-include-a-font-as-an-embedded-resource-in-your-application.aspx

Imports System.Drawing.Text 
Imports System.Runtime.InteropServices 

Module CustomFont 

'PRIVATE FONT COLLECTION TO HOLD THE DYNAMIC FONT 
Private _pfc As PrivateFontCollection = Nothing 


Public ReadOnly Property GetInstance(ByVal Size As Single, _ 
            ByVal style As FontStyle) As Font 
    Get 
     'IF THIS IS THE FIRST TIME GETTING AN INSTANCE 
     'LOAD THE FONT FROM RESOURCES 
     If _pfc Is Nothing Then LoadFont() 

     'RETURN A NEW FONT OBJECT BASED ON THE SIZE AND STYLE PASSED IN 
     Return New Font(_pfc.Families(0), Size, style) 

    End Get 
End Property 

Private Sub LoadFont() 
    Try 
     'INIT THE FONT COLLECTION 
     _pfc = New PrivateFontCollection 

     'LOAD MEMORY POINTER FOR FONT RESOURCE 
     Dim fontMemPointer As IntPtr = _ 
      Marshal.AllocCoTaskMem(_ 
      My.Resources.DIGITALDREAMNARROW.Length) 

     'COPY THE DATA TO THE MEMORY LOCATION 
     Marshal.Copy(My.Resources.DIGITALDREAMNARROW, _ 
        0, fontMemPointer, _ 
        My.Resources.DIGITALDREAMNARROW.Length) 

     'LOAD THE MEMORY FONT INTO THE PRIVATE FONT COLLECTION 
     _pfc.AddMemoryFont(fontMemPointer, _ 
          My.Resources.DIGITALDREAMNARROW.Length) 

     'FREE UNSAFE MEMORY 
     Marshal.FreeCoTaskMem(fontMemPointer) 
    Catch ex As Exception 
     'ERROR LOADING FONT. HANDLE EXCEPTION HERE 
    End Try 

End Sub 

End Module 

我下載了程序的源代碼,它工作正常,但是當我再試我的結束,我得到的錯誤。誰能幫忙?

+0

它說你需要將UseCompatibleTextRendering屬性設置爲true(默認爲false),你做到了這一點? – Standage 2012-03-06 18:52:35

+0

這不會產生錯誤,但是,它們設置爲true。我收到的具體錯誤是「'DIGITALDREAMNARROW'不是」資源「的成員。」 – 2012-03-06 18:54:28

+0

聽起來像需要使用「添加資源\添加現有文件」將其添加到「我的項目\資源」中。 – 2012-03-06 19:24:01

回答

1

將文件作爲資源添加到您的項目中,

  • 雙擊我的項目 Solution Explorer中或您的項目屬性項目菜單項下。
  • 從您的項目中選擇資源選項卡屬性。您可以通過從「添加資源」下拉菜單中選擇添加現有文件...或者從Windows資源管理器中拖放來添加ttf文件。注:如果您使用添加添加現有文件...的TTF資源,則需要更換過濾器,以顯示所有文件(* *)。

reference

+0

這樣做!...謝謝! – 2012-03-06 20:07:08