Installing and using a specific font in a winform

2020-04-17 05:51发布

问题:

I want to use a specific font in my winform app. This font will be auto installed in user personal computer from my application resource.

How can I do that?

I used some code which is from user personal computer. If I use this the font must be remain previously in user personal computer but I don't want that.

         System.Drawing.Text.PrivateFontCollection fontCollection = new     System.Drawing.Text.PrivateFontCollection();
         fontCollection.AddFontFile(@"C:\Windows\Fonts\SUTOM__.TTF");
         FontFamily family = new FontFamily("SutonnyMJ", fontCollection);
         Font font3of9 = new Font(family, 15);
         label1.Font = font3of9;

回答1:

1. Install Using Setup Project

You can install font from your setup project to do this you have to

File System > Right Click under the File System on Target Machine > Add Special Folder Fonts Folder

Then Select Fonts Folder and Add > File...

2. Install Font Programmatically
To achive this you have to do some external calls unfortunately.

[DllImport("gdi32.dll", EntryPoint="AddFontResourceW", SetLastError=true)]
public static extern int AddFontResource([In][MarshalAs(UnmanagedType.LPWStr)]
                                         string lpFileName);

Then call it from anywhere you want

AddFontResource(@"C:\FontLocation\MyFont.TTF");