+3 امتیاز
سلام

اگز داخل ویندوز روی یک فونتی که نصب نشده کلیک راست  کنیم منوای رو نمایش میده که بتونیم اون فونت رو نصب کنیم.(Install)

حالا منم میخوام این امکان را در نرم افزاری که نوشتم فراهم کنه. یعنی اگر کاربر روی فونت نصب نشده کلیک کرد بتونه اون رو نصب کنه.(آدرس فونت رو بدم و با زدن دکمه اون رو نصب کنه)

1 پاسخ

+3 امتیاز

سلام ، اگر می خواین همین فونت رو در برنامه خودتون به کار ببرید نیازی به نصبش نیست می تونید از کلاس PrivateFontCollection استفاده کنید : 

var PrivateFontCollection1 = new PrivateFontCollection();
            PrivateFontCollection1.AddFontFile(Application.StartupPath + "\\MyFont.ttf");
            textBox1.Font = new Font(PrivateFontCollection1.Families[0], 14, FontStyle.Regular);

کلاسش در فضای نام System.Drawing.Text هست . 

اما اگر قصد دارید کلا فونت رو در کامپیوتر نصب کنید تا سایر برنامه ها هم ازش استفاده کنن باید از توابع API ویندوز استفاده کنید ، ابتدا تابع رو تعریف کنید ( در یک فایل DLL خارجی قرار داره ) :

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

سپس با استفاده از کد زیر تابع رو صدا بزنید : 

 int result =  AddFontResource( Application.StartupPath + @"\MyFont.TTF");

 

بله نگاه کردم اونجا هم نیست

انگار که نصب نشده
توسط (471 امتیاز) 7 35
من از روش api که گفتید استفاده کردم و فونت نصب شد ولی تو پوشه فونت ویندوز وجود نداره؟
توسط (1,019 امتیاز) 1 23 74
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,921 کاربر

دسته بندی ها

...