在.NET中使用程式碼實現檢索/安裝字型
阿新 • • 發佈:2019-02-08
'檢索已安裝字樣: 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