Как встроить шрифты для использования в проекте Visual Basic? - PullRequest
0 голосов
/ 06 марта 2012

Я пытаюсь внедрить шрифт, используя следующий код, который я нашел на этом сайте, однако, когда я пытаюсь создать, я продолжаю сталкиваться с ошибкой 'DIGITALDREAMNARROW' is not a member of 'Resources'..Может кто-нибудь помочь с тем, где я должен сделать это:

Даже если у меня есть шрифт, добавленный в папку ресурсов.Я что-то упускаю?

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

Я скачал исходный код его программы, и он работает нормально, но когда я повторяю его с моей стороны, я получаю ошибки.Кто-нибудь может помочь?

1 Ответ

1 голос
/ 06 марта 2012

Чтобы добавить файл в качестве ресурса в проект,

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

( ссылка )

...