مهدی عادلی فر
بنیانگذار توسینسو و برنامه نویس

آموزش استفاده از فونت در سی شارپ برای زیبایی برنامه

چگونه از فونت در سی شارپ استفاده کنیم؟ روش استفاده از Font در سی شارپ چیست؟ گاهی اوقات ما در برنامه نویسی برای این که برنامه ما دارای ظاهر زیبا تری باشد و کاربر پسند تر باشد از فونت هایی استفاده می کنیم که خاص هستند. طبیعتا ممکن است که این فونت ها روی همه سیستم های مقصد نصب نشده باشند و یا اگر هم نصب شده اند از لحاظ ورژن سازگاری نداشته باشند. این امر باعث می شود که برنامه ما در کامپیوتر مقصد با آن ظاهر که می خواستیم نمایش داده نشود و موجب نارضایتی کاربران شود. در این مطلب قصد داریم که آموزش دهیم در زبان سی شارپ حتی اگر فونتی روی یک سیستم نصب نباشد چگونه از فونت مورد نظر استفاده کنیم بدون این که فونت را نصب کنیم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سرفصل های این مطلب
  1. ساخت پروژه

ساخت پروژه

ابتدا در ویژوال استودیو یک پروژه جدید از نوع Windows Form می سازیم. به این صورت که در ویژوال استودیو از منوی file گزینه new را انتخاب می کنیم و از زیر منوی باز شده گزینه project را انتخاب می کنیم. با این کار یک صفحه به شکل زیر باز می شود که از داخل آن در سمت چپ Visual C# را انتخاب می کنیم و از سمت راست Windows Font Application را انتخاب می کنیم. در قسمت Name یک نام برای پروژه در نظر می گیریم که ما در این مثال نام آن را TestFontEmbeding قرار می دهیم و بر روی دکمه ok کلیک می کنیم.

وب سایت توسینسو

پس از این کار صفحه اصلی برنامه به شما نشان داده می شود تا بتوانید آن را طراحی کنید. ما برای تست برنامه کنترل های textbox, Labe, Button را روی فرم قرار می دهیم. برای این کار از پنجره toolbox که معمولا در سمت چپ محیط ویژوال استودیو قرار دارد کنترل های گفته شده را در درون فرم برنامه بکشید. و از پنجره properties که معمولا در سمت راست ویژوال استودیو قرار دارد مقادیر text هر کدام از این کنترل ها را به شکل زیر قرار می دهیم.فرم برنامه به شکل زیر خواهد بود.

وب سایت توسینسو

حال باید فایل فونت مورد نظر را پیدا کنیم. بعد از این که فایل فونت مورد نظر که معمولا پسوند ttf دارند را پیدا کردیم از قسمت زیر بر روی Resources.resx کلیک کنیم تا پنجره مربوط به این فایل باز شود.

وب سایت توسینسو

پس از این که این صفحه باز شد از قسمت بالای پنجره بر روی فلش Add Resource کلیک کنید و از منوی که زیر آن باز می شود بر روی Add Existing file کلیک کنید. در این صورت پنجره ای باز می شود که با استفاده از این پنجره فایل فونت خود را با آن انتخاب کنید و بر روی دکمه open کلیک کنید. من در این مثال فایل BKamran.ttf را که قبلا فایل آن را داشتم انتخاب کردم. سپس فایل Resources.resx را ذخیره کرده و ببندید. حال بر روی لیبل و دکمه ای که بر روی فرم اصلی برنامه قرار داده بودید کلیک کنید و از پنجره ی properties بر روی use compatible text rendering کلیک کنید و مقدار آن را true قرار دهید. حال بر روی فرم اصلی برنامه کلیک کنید و دکمه f7 را بزنید تا وارد قسمت کد نویسی این فرم شوید. سپس در داخل کلاس Form1 متد زیر را بنویسید.

  public void InitFont()
        {
            var pfc = new PrivateFontCollection();
            var fontLength = Properties.Resources.BKamran.Length;
            var fontData = Properties.Resources.BKamran;
            var data = Marshal.AllocCoTaskMem(fontLength);
            Marshal.Copy(fontData, 0, data, fontLength);
            pfc.AddMemoryFont(data, fontLength);
            Marshal.FreeCoTaskMem(data);
            textBox1.Font = new Font(pfc.Families[0], textBox1.Font.Size);
            label1.Font=new Font(pfc.Families[0],label1.Font.Size);
            button1.Font=new Font(pfc.Families[0],button1.Font.Size);
        }

دقت داشته باشید که در این کد textbox1 نام کنترل textboxی است که بر روی فرم اصلی قرار داده شده است و همچنین label1, button1 هم به ترتیب نام کنترل های موجود در فرم اصلی می باشد. همچنین BKamran نام فونتی است که ما در مراحل قبل به پروژه اضافه کردیم که می توانید نام آن را با توجه به فونتی که به برنامه اضافه کرده اید تغییر دهید. در مرحله نهایی باید به متد سازنده(constructor) فرم که نام آن Form1() است برویم و متد InitFont را داخل آن فراخوانی کنیم. که متد Form1بعد از این تغییر به شکل زیر خواهد بود

  public Form1()
        {
            InitializeComponent();
            InitFont();
        }

حال اگر برنامه را اجرا کنیم تغییر را به صورت تصویر زیر مشاهده خواهیم کرد.

عکس افتر

Itpro باشید

نویسنده: مهدی عادلی فر

منبع: Itpro

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.


مهدی عادلی فر
مهدی عادلی فر

بنیانگذار توسینسو و برنامه نویس

مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.

نظرات