1. 程式人生 > >在.NET中使用程式碼實現檢索/安裝字型

在.NET中使用程式碼實現檢索/安裝字型

'檢索已安裝字樣: 

Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim mFontCollection As New Drawing.Text.InstalledFontCollection 
Dim mInstance As New Action(Of Drawing.FontFamily)(AddressOf GetFontFamilyName) 
Array.ForEach(mFontCollection.Families, mInstance)

End Sub

Private Sub GetFontFamilyName()Sub GetFontFamilyName(ByVal sender As Drawing.FontFamily) 
Console.WriteLine(sender.Name) 
End Sub 

' 以上程式碼是Net2.0的。當然,也可以這般實現:


Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim mFontCollection As New Drawing.Text.InstalledFontCollection 
For Each mFontFamily As FontFamily In mFontCollection.Families 
Console.WriteLine(mFontFamily.Name) 
Next

End Sub 

' 專案中新增檔案Visualui.TTF 
' 安裝 

Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim mPrivateFontCollection As New Drawing.Text.PrivateFontCollection 
mPrivateFontCollection.AddFontFile("..\..\Visualui.TTF")

End Sub 

' 以下是全過程: 

Private gPrivateFontCollection As Drawing.Text.PrivateFontCollection 
Private gInstance As New Action(Of Drawing.FontFamily)(AddressOf GetFontFamilyName)

Private gStrings As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Private Sub GetFontFamilyName()Sub GetFontFamilyName(ByVal sender As Drawing.FontFamily) 
Console.WriteLine(sender.Name) 
End Sub

Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Console.WriteLine("預設字型顯示ABCDEFGHIJKLMNOPQRSTUVWXYZ") 
Me.Label1.Text = gStrings 

' 停頓兩秒 

Me.Label1.Refresh() 
System.Threading.Thread.Sleep(2000)

Console.WriteLine() 
Console.WriteLine("檢視系統已安裝的字樣") 
Array.ForEach(FontFamily.Families, gInstance)

'安裝字型檔案 

gPrivateFontCollection = New Drawing.Text.PrivateFontCollection 
gPrivateFontCollection.AddFontFile("..\..\Visualui.TTF") 
Console.WriteLine() 
Console.WriteLine("檢視可安裝的字樣") 
Array.ForEach(gPrivateFontCollection.Families, gInstance)

'安裝字樣 
Dim mFontFamily As FontFamily = New FontFamily("Visualui", gPrivateFontCollection)

Console.WriteLine() 
Console.WriteLine("檢視系統已安裝的字樣") 
Array.ForEach(FontFamily.Families, gInstance)

'應用字型 

Dim mFont As New Font(mFontFamily, Me.Label1.Font.Size) 
Me.Label1.Font = mFont 
End Sub