어떻게 Visual Basic .NET 응용 프로그램에 글꼴을 포함시킬 수 있습니까? 모든 운영 체제에서 유효해야합니다.Visual Basic .NET 응용 프로그램에 글꼴을 어떻게 포함시킬 수 있습니까?
답변
응용 프로그램에 글꼴을 포함시키고 해당 글꼴을 사용자 시스템에서 사용할 수없는 경우 사용할 수 있습니다.
간단하게 PrivateFontCollection을 만들고 글꼴로 채우기 만하면 원하는대로 사용할 수 있습니다. MSDN에 따르면,이 방법은 섹션 PrivateFontCollection.AddFontFile 방법의 비고에서 Windows 2000
하기 전에 운영 체제에 적용되지 않습니다
Windows 2000의 이전 운영 체제에서 개인 글꼴을 사용하여, 기본 글꼴 (일반적으로 Microsoft Sans Serif)이 대체됩니다.
응용 프로그램을하려는 경우은 Windows 2000에서 사용되는 및 최신, 당신은 내가 개인 글꼴을 구현하는 방법을보고 쓴이 코드를 따를 수 있습니다.
Public Class Form1
Dim pfc As System.Drawing.Text.PrivateFontCollection
Dim ifc As System.Drawing.Text.InstalledFontCollection
Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
pfc = New System.Drawing.Text.PrivateFontCollection()
ifc = New System.Drawing.Text.InstalledFontCollection()
LoadPrivateFonts({My.Resources.Series_60_ZDigi, My.Resources.Times_NR_Phonetics_2})
End Sub
''' <summary>Loads the private fonts.</summary>
''' <param name="fonts">The fonts to be loaded into the private font collection.</param>
Private Sub LoadPrivateFonts(ByVal fonts As IEnumerable(Of Byte()))
For Each resFont In fonts
pfc.AddMemoryFont(Runtime.InteropServices.Marshal.UnsafeAddrOfPinnedArrayElement(resFont, 0), resFont.Length)
Next
End Sub
''' <summary>Gets the FontFamily whose name matches the one specified.</summary>
''' <param name="fontName">Name of the FontFamily to be returned.</param>
''' <param name="defaultFamily">
''' Optional. The default font family to be returned if the specified font is not found
''' </param>
Private Function GetFontFamily(ByVal fontName As String, Optional ByVal defaultFamily As FontFamily = Nothing) As FontFamily
If String.IsNullOrEmpty(fontName) Then
Throw New ArgumentNullException("fontName", "The name of the font cannont be null.")
End If
Dim foundFonts = From font In ifc.Families.Union(pfc.Families) Where font.Name.ToLower() = fontName.ToLower()
If foundFonts.Any() Then
Return foundFonts.First()
Else
Return If(defaultFamily, FontFamily.GenericSansSerif)
End If
End Function
Private Sub Form1_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
'free the resources used by the font collections
pfc.Dispose()
ifc.Dispose()
End Sub
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Dim g = e.Graphics
Using br As Brush = Brushes.Black
g.DrawString("1234567890ABCDEF", New Font(GetFontFamily("Series 60 ZDigi"), 18), br, New Point(20, 20))
g.DrawString("ABCDEFGHIJKLMNOP", New Font(GetFontFamily("Times NR Phonetics 2"), 18), br, New Point(20, 100))
End Using
End Sub
End Class
나는 개인 글꼴 모음으로 내가 자원에서 응용 프로그램 (시리즈 60 ZDigi, 내 노키아 휴대 전화에서 글꼴 및 시간 NR 음성학 2, 내 사전 응용 프로그램에서 글꼴)에서 사용하는 두 개의 글꼴을로드 Sub New()
그런 다음 GetFontFamily
메서드를 호출하여 양식에 페인트 할 원하는 글꼴을 가져옵니다.
이것을 응용 프로그램에 통합하는 것이 너무 어렵지 않아야합니다.
건배.
수 없습니다. 표준 Winforms 응용 프로그램의 포함 된 글꼴에 대해서는이 시점에서 플랫폼 간 표준이 없습니다. 사용자가 할 수있는 최선의 방법은 개별 OS 별 글꼴 파일을 포함하고 현재 사용중인 OS를 감지 한 다음 프로그래밍 방식으로 글꼴을 설치하는 것입니다.
반면에 VB.net의 WPF 응용 프로그램은 사용자의 요구에 부합 할 수 있지만이 위치가 아니라고 느낍니다. WPF 응용 프로그램으로 글꼴을 패키지하는 방법에 대한 자세한 내용은 this MSDN article을 참조하십시오.
- 1. .net winforms 응용 프로그램과 함께 글꼴을 어떻게 묶을 수 있습니까?
- 2. Visual Basic .NET 도움말
- 3. Visual Basic .NET : Schedule
- 4. .NET 응용 프로그램에서 사용자 글꼴을 어떻게 찾을 수 있습니까?
- 5. 어떻게 관리되지 않는 C++ 폼을 .NET 응용 프로그램에 포함시킬 수 있습니까?
- 6. CodeDom Visual Basic .NET 파서가 있습니까?
- 7. 어떻게 Flash를 VB.NET에 포함시킬 수 있습니까?
- 8. Visual Basic .net 2008 배포
- 9. 어떻게하면 Google지도를 wxPython 프로그램에 포함시킬 수 있습니까?
- 10. 어떻게하면 GUI 응용 프로그램에 firefox를 포함시킬 수 있습니까?
- 11. webstart 응용 프로그램에 html/css/js보기를 포함시킬 수 있습니까
- 12. C/C++ 응용 프로그램에 nginx를 포함시킬 수 있습니까
- 13. Paint.NET API를 사용하여 WinForms 응용 프로그램에 포함시킬 수 있습니까?
- 14. Visual Basic .NET 용 Mechanize가 있습니까?
- 15. Visual Basic .Net 3D Engine
- 16. 어떻게 Excel 스프레드 시트를 C# 프로그램에 포함시킬 수 있습니까?
- 17. Visual Basic 응용 프로그램 도움말
- 18. Visual Basic 6.0에서 dotnet 응용 프로그램에 선언 된 이벤트를 사용하여
- 19. VS2008을 사용하는 응용 프로그램에 응용 프로그램 매니페스트를 어떻게 포함시킬 수 있습니까?
- 20. HWND가 지정된 Visual Basic 컨트롤의 이름은 어떻게 얻을 수 있습니까?
- 21. Visual Basic 6의 .Net 클래스 호출
- 22. Visual Basic 2010에서 프로그램을 어떻게 열 수 있습니까?
- 23. Visual Basic .NET 1.1에서 이벤트 추가
- 24. 크로스 플랫폼 응용 프로그램에 플래시 비디오를 포함시킬 C++ 라이브러리가 있습니까?
- 25. Visual Basic 6 서식
- 26. 내 iPhone 응용 프로그램에 어떻게 오픈 소스 라이브러리를 포함시킬 수 있습니까?
- 27. VS2003/2008의 Visual Basic
- 28. Visual Basic .Net 소프트웨어는 컴퓨터와 다르게 작동합니다.
- 29. 은 Visual Basic .NET - 변수 이름
- 30. 어떻게 awk 스크립트에 인수를 포함시킬 수 있습니까?
버블 버스트가 싫지만 ** 할 수 있습니다 **. 모든 운영 체제에서 작동하지 않을 수 있지만 Win2k 이상에서는 작동합니다. 방법에 대한 내 대답을보십시오. –