آموزش Custom Renderers در زامارین فرم بخش اول

آموزش Custom Renderers در زامارین فرم بخش اول

Custom renderers رویکردی قدرتمند برای شخصی سازی شکل ظاهری در Xamarin به کار می رود. از آنها می توان برای تغییرات کوچک style و یا طرح بندی پیچیده و سفارشی استفاده کرد. این مقاله به معرفی رندرهای سفارشی می پردازد و روند ایجاد یک رندر سفارشی را به طور خلاصه بیان می کند.

در زامارین فرم ،  Pages ، Layouts و Control ها یک API مشترک برای توصیف رابط های کاربری موبایل چند پلتفرمی به کار می رود . هر page ، layout و control به طور متفاوتی در هر سیستم عامل رندر می شود ، با استفاده از یک کلاس Renderer که به نوبه خود یک کنترل محلی ایجاد می کند ،برای هر پلت فرم می توان رفتار و استایل خاص خودش را به وجود آورد .

توسعه دهندگان می توانند کلاسهای Renderer سفارشی خود را برای شخصی سازی شکل ظاهری و یا کنترل ، پیاده سازی کنند. Custom renderers های مختلف می توانند به هر پروژه برنامه اضافه شوند تا در iOS ، Android و Platform Windows جهانی (UWP) ظاهر و احساس متفاوتی ایجاد کنند.

به دلیل تاثیری که Custom renderers ها در کارایی برنامه دارند و ضروری بودن استفاده از آن ، لازم است در استفاده از Custom renderers ها دقت داشته باشید

چرا رندرهای سفارشی ضروری هستند ؟

تغییر ظاهر کنترل های  Xamarin.Forms ، بدون استفاده از رندر سفارشی ، یک فرایند دو مرحله ای که شامل ایجاد یک کنترل سفارشی و سپس استفاده کنترل سفارشی به جای کنترل اصلی است. در مثال زیر نشان داده شده است .

public class MyEntry : Entry
{
  public MyEntry ()
  {
    BackgroundColor = Color.Gray;
  }
}

کنترل MyEntry یک کنترل ورودی است که BackgroundColor  ان روی خاکستری تنظیم شده است و می توان با اعلام یک فضای نام و استفاده از پیشوند فضای نام بر روی عنصر کنترل ، در Xaml به آن اشاره کرد. مثال زیر نشان می دهد که چگونه می توان از کنترل سفارشی MyEntry در ContentPage استفاده کرد .

<ContentPage
    ...
    xmlns:local="clr-namespace:CustomRenderer;assembly=CustomRenderer"
    ...>
    ...
    <local:MyEntry Text="In Shared Code" />
    ...
</ContentPage>

پیشوند فضای نام می تواند هر چیزی باشد. با این حال ، فضای نام و مقادیر اسمبلی باید با جزئیات کنترل سفارشی مطابقت داشته باشد.در مثال بالا local پیشوند فضای نام در نظر گرفته شده است . پس از اعلام فضای نام ، از پیشوند برای ارجاع به کنترل سفارشی استفاده می شود . همانطور که در تصاویر زیر نشان داده شده است ، کنترل سفارشی MyEntry در هر پلت فرم با پس زمینه خاکستری ارائه می شود.

ایجاد Custom Renderer برای کنترل Entry

هر کنترل Xamarin.Forms برای هر سیستم عامل یک رندر همراه دارد که نمونه ای از کنترل بومی را ایجاد می کند. هنگامی که کنترل ورودی توسط برنامه Xamarin.Forms ارائه می شود ، در iOS کلاس EntryRenderer نمونه سازی می شود ، که به نوبه خود یک کنترل بومی UITextField را ایجاد می کند. در سیستم عامل Android ، کلاس EntryRenderer یک کنترل EditText را ایجاد می کند. در Platform Windows Windows (UWP) ، کلاس EntryRenderer یک کنترل TextBox را ایجاد می کند.

 

با ایجاد یک رندر اختصاصی برای کنترل ورودی در هر پلتفرم ، می توان از فرآیند رندر برای پیاده سازی تنظیمات خاص پلتفرم بهره برد. روند انجام این کار به شرح زیر است:

  1. یک کنترل سفارشی Xamarin.Forms ایجاد کنید.
  2. custom renderer را برای کنترل در هر سیستم عامل ایجاد کنید.

ایجاد Custom Entry Control

 

 

0 نظر ثبت شده است