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 истинным (по умолчанию является ложным), вы это сделали ?! – Standage

+0

Это не порождает ошибку, но да, они установлены в true. Конкретная ошибка, которую я получаю, это «DIGITALDREAMNARROW» не входит в «Ресурсы». –

+0

Похоже, вам нужно добавить его в «Мой проект \ Ресурсы», используя «Добавить ресурс \ Добавить существующий файл». –

ответ

1

Для добавления файла в качестве ресурса для проекта,

  • Дважды щелкните Мой проект в Solution Explorer, или свойства проекта по пункту менюProject.
  • Выберите Ресурсы вкладка вашего проекта Недвижимость. Вы можете добавить файл ttf, выбрав Добавить существующий файл ... из раскрывающегося меню «Добавить ресурсы» или просто перетащите его из Проводника Windows. Примечание: если вы добавляете ресурс TTF с помощью Добавить существующий файл ..., вам нужно будет изменить фильтр, чтобы показать Все файлы (* . *).

(reference)

+0

Вот и все! ... Спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^