استفاده از فونت دلخواد در Xamarin Forms

استفاده از فونت دلخواد در Xamarin Forms

Xamarin.Forms یک فریم ورک است که به ما کمک می کند تا اپلیکیشن های Cross-Platform بسیازیم، با این فریم ورک یک بار کدنویسی می کنیم و اپلیکیشن ما در سه پلت فرم IOS و Android ساخته می شود.

اضافه کردن فونت دلخواه به پروژه Android و IOS کار سختی نیست و با توجه به مستندات زامارین به راحتی انجام می شود، تنها چند نکته در رابطه با اضافه کردن فونت به IOS وجود دارد که باید دقت شود.

روال کار به این صورت می باشد که فونت دلخواه را به پروژه اضافه میکنیم و سپس در هر بخشی که نیاز بود به آن رفرنس (ارجاع) میدهیم.

1. اضافه کردن فونت دلخواه به IOS در Xamarin.Forms:

1-1: افزودن فونت ها: فونت های مورد نظر را کپی کرده و در پوشه Resources پروژه IOS پیست کنید.

1-2: روی هر فونت کلیک کنید و در پنجره Properties مطمعن شوید که مقدار Build action برابر BundleResource باشد.

1-3: همچنین در همین پنجره Properties مربوط به هر فونت دقت نمایید تا مقدار Copy to output directory برابر Always copy باشد.

1-4: فایل Info.plist را در پروژه IOS باز کرده و کلید جدیدی از نوع آرایه (Array) به آن اضافه کنید، نام کلید را UIAppFonts قرار دهید که نام دوستانه ای برای (Fonts provided by Application) می باشد، سپس نام فونت را که از نوع رشته (string) است به این آرایه اضافه کنید که در این مثال همانطور که در تصویر مشاهده می کنید IRANSansMobile.ttf می باشد.

2. ارجاع دادن فونت در پروژه:

ارجاع دادن فونت هم کار بسیار ساده ای می باشد، برای این کار از خصوصیت (Property) به نام FontFamily در کنترل ها استفاده میکنیم. در مثال ما کنترل مورد نظر Label است.

به خاطر اینکه فونت در هر پلت فرم ممکن است متفاوت باشد می توانیم از کلیدواژه OnPlatform استفاده کنیم.

برای این کار باید کد زیر را بنویسیم :

<Label TextColor="#934293" Text="سلام" FontSize="80">
	<Label.FontFamily>
		<OnPlatform x:TypeArguments="x:String">
			<On Platform="iOS">IRANSansMobile</On>
		</OnPlatform>
	</Label.FontFamily>
</Label>

اگر پروژه را اجرا کنید ممکن است ببینید که فونت شما اعمال نشده است!

 

راهنمایی مستندات زامارین:

با استفاده از نام فونت به فونت ارجاع داده شود (نه نام فایل فونت!)

گاهی اوقات نام فایل فونت با نام فونت تفاوت دارد، یعنی ممکن است نام فونت شما My Font باشد و نام فایل آن MyFont.ttf در این صورت شما در مرحله قبل باید نام فونت را در تگ OnPlatform بنویسید.

 

3. اضافه کردن فونت دلخواه به Android در Xamarin.Forms

اضافه کردن فونت دلخواه در Android ساده تر از IOS می باشد:

3-1: فونت ها را کپی کرده و در پوشه Assets در پروژه اندروید پیست کنید.

3-2: سپس مطمعن شوید که مقدار Build Action هر فونت که در پنجره Properties وجود دارد برابر Android Asset باشد.

4. ارجاع دادن فونت در پروژه:

فونت ها در اندروید با الگوی (FontFileName#FontName) به کنترل اضافه می شوند، دقت کنید ابتدا نام فایل فونت به همراه پسوند آن سپس علامت # و بعد از آن نام اصلی فونت نوشته می شود که در مثال ما به شکل زیر خواهد بود :

<Label TextColor="#934293" Text="سلام" FontSize="80">
	<Label.FontFamily>
		<OnPlatform x:TypeArguments="x:String">
			<On Platform="iOS">IRANSansMobile</On>
			<On Platform="Android">IRANSansMobile.ttf#IRANSansMobile</On>
		</OnPlatform>
	</Label.FontFamily>
</Label>

اگر پروژه را اجرا کنید می بینید که فونت در هر دو پلتفرم اعمال شده است و نمایش داده می شود.

 

>جمع بندی:

در IOS از نام فونت استفاده کنید نه نام فایل فونت.

دقت داشته باشید که فونت ها به هر پلتفرم باید اضافه شوند.

در IOS دقت کنید که Bulild Action برابر Bundle Resource و Copy to output directory برابر Always copy باشد.

در اندروید فونت ها در پوشه Asset کپی می شوند و مطمعن شوید که مقدار Build Action برابر Android Asset باشد.

نظرات (0)

نظرسنجی
میزان رضایت شما از امکانات و مقالات سایت