بایگانی

Archive for مه 2012

جدا کردن کد از xaml در طراحی کنترل های سفارشی

وقتی در حال ایجاد کنترل های سفارشی در پروژه خود هستید باید طراحی را با تسلط بر هم کد و هم Xaml انجام دهید. برای اینکه این دو فایل را به یکدیگر مرتبط کنید باید از فایل generic.xaml استفاده کنید. برای این کار بعد از اینکه فایل cs خود را ایجاد کردید و کدهای مربوط به کنترل خود را در آن قرار دادید، روی Solution راست کلیک کنید و یک Resource Dictionary به نام generic.xaml به پروژه اضافه نمایید. به ازای هر کنترلی که می خواهید برای آن Template تعریف کنید باید یک style در این فایل ایجاد کنید. فرض کنید کنترل ما به صورت زیر می باشد:


namespace SilverlightApplication2.Controls
{
public class BarButton : System.Windows.Controls.Button
{
public BarButton()
{
DefaultStyleKey = typeof(BarButton);
}
……
{
{

از نوشتن کدهای دیگر این کنترل صرف نظر می کنیم. بدین صورت در فایل generic.xaml باید به این صورت عمل نماییم:

از این بعد هرجایی از پروژه از کنترل BarButton استفاده کنید کامپایلر خواهد فهمید که باید از چه Template برای این کنترل استفاده کند. فقط باید دقت داشته باشید که ست کردن DefaultStyleKey در سازنده کلاس کنترل به کامپایلر این موضوع را خواهد فهماند که به دنبال Style ی بگردد که برای BarButton ایجاد شده است.

Advertisements
دسته‌ها:Silverlight برچسب‌ها: