آموزش WPF

مباحث پایه WPF

مثال های کاربردی WPF

آموزش ساخت TextBox سفارشی در WPF

  • سه شنبه ۱ مهر ۱۳۹۹
  • بازدید ۱,۷۷۴ نفر

تصویر wpf-custom-textbox_9020 آموزش ساخت TextBox سفارشی در WPF

آموزش ساخت TextBox سفارشی در WPF

در این بخش آموزش ساخت TextBox سفارشی در WPF را برای شما آماده کرده ایم که یک آموزش مناسب برای ساخت کنترل های سفارشی با استفاده از زبان برنامه نویسی سی شارپ و تکنولوژی Xaml است. در ادامه می توانید توضیحات، تصاویر و همچنین فیلمی از نتیجه نهایی را مشاهده کنید.

توضیحات

در این آموزش قصد داریم تا استایل استفاده شده برای فیلدهای مروگر کروم را در WPF ایجاد کنیم. برای اینکه متوجه شوید منظورمان کدام فیلد است به تصویر زیر نگاه کنید.

تصویر wpf-custom-textbox_9020_1 آموزش ساخت TextBox سفارشی در WPF

توجه! برای ساخت این پروژه از نرم افزار Visual Studio نسخه 2019 و .Net Core 3.1 استفاده شده است.

ایجاد کنترل TextField

ابتدا با توجه به تصویر زیر یک پروژه از نوع WPF Custom Control Library ایجاد کنید.

تصویر wpf-custom-textbox_9020_2-1 آموزش ساخت TextBox سفارشی در WPF

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

 از آنجایی که قرار است ما یک TextBox ایجاد کنیم، پس کنترل ما باید از TextBox ارث بری کند. کد زیر که در داخل سازنده استاتیک نوشته شده است، برای override کردن متادیتا مربوط به کنترل والد است. برای مثال در این بخش می توانیم متادیتاهایی مثل مقدار پیشفرض، نوع بایند شدن و غیره را تنظیم کنیم.

به جز سازنده فوق، کد مربوط به کنترل ما شامل 5 خاصیت دیگر نیز است که همه از نوع DependencyProperty هستند و در ادامه هر کدام را توضیح خواهم داد.

  • خاصیت Caption: این خاصیت مقداری که در بالای فیلد نمایش داده می شود را مشخص می کند.
  • خاصیت CaptionFontSize: همانطور که از اسمش نیز مشخص است، اندازه فونت مربوط به Caption را مشخص می کند.
  • خاصیت CaptionOpacity: میزان شفافیت Caption را مشخص می کند.
  • خاصیت CaptionAlignment: محل قرار گیری Caption را مشخص می کند و می تواند با مقادیر Stretch، Left، Right و Center تنظیم شود.
  • خاصیت CornerRadius: میزان گردی گوشه های فیلد را مشخص می کند.

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

در ادامه بخش های مهم کد فوق را بررسی می کنیم.

کد بالا Converter زیر را اضافه می کند که کار آن تنظیم کردن ارتفاع کنترل با ارتفاع PART_ContainerGrid و  PART_CaptionHost است. در زیر می توانید کد مربوط به این Converter را مشاهده کنید.

کد زیر مقادیر پیش فرض را برای کنترل TextField تنظیم می کند.

کد زیر انیمیشنی که باید در حالت Focus و Unfocus بر روی PART_Underline اعمال شوند را تنظیم می کند.

کد زیر مقدار تنظیم شده برای خاصیت Caption را در بالای فیلد نمایش می دهد.

کد زیر مربوط به خطی است که در هنگام Focus زیر فیلد نمایش داده می شود.

کد زیر مقدار تنظیم شده برای خاصیت Text را نمایش می دهد.

Trigger زیر در هنگام Focus شدن به داخل فیلد، رنگ متن Caption را با رنگ Border تنظیم می کند.

استفاده از کنترل TextField

برای استفاده از کنترلی که تا اینجای آموزش ایجاد کرده ایم، یک پروژه از نوع WPF ایجاد کنید و سپس Reference مربوط به پروژه بالا را به این پروژه اضافه کنید. بعد از افزودن Reference کنترل، باید Resource مربوط به ظاهر کنترل را هم اضافه کنیم. برای این کار محتوای فایل App.xaml را به شکل زیر تغییر دهید.

تصویر wpf-custom-textbox_9020_3-3 آموزش ساخت TextBox سفارشی در WPF

حال محتوای مربوط به فایل MainWindow.xaml را نیز به شکل زیر تغییر دهید.

مشاهده نتیجه

اگر پروژه WPF را Build و Run کنید، خروجی زیر را مشاهده خواهید کرد.

تصویر wpf-custom-textbox_9020_4 آموزش ساخت TextBox سفارشی در WPF

سورس کامل پروژه در GitHub

 

باکس دانلود
ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است