# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > WPF >  طریقه ساخت استایل برای کامپوننت های wpf در blend

## Twoplus2010

سلام به اساتید محترم
نماز و روزتون قبول باشه وانشالله طاعات تک تکتون مورد قبول درگاه حق تعالی قرار گرفته باشه
من این تاپیک رو راه اندازی کردم که تمام اساتید wpf کار هر وقت که وقت آزاد داشتن بیان و به صورت نوشتاری و تصویری طریقه ساخت استایل کامپوننت ها رو تو نرم افزار blend اموزش بدن که دیگران بتونن از اون استفاده کنن ( که این کار با ارزش اونا باعث خیر و برکت تو کار و زندگشون بشه انشالله ) از لطف بی دریغتون کمال تشکر را دارم

----------


## birtemp

تو لینک زیر می تونید ویدئو آموزشی ساخت استایل برای کنترل ها تو نرم افزار blend رو دریافت کنید.

*Video : ویدئوی آموزشی استایل دادن به کنترل Button در تکنولوژی WPF*

----------


## Amir Oveisi

کاربر گرامی این موضوع به وفور بحث شده و ویدئوهای آقای فرزاد هم تو بخش اعلانات قرار داره که مبحث style ها رو هم پوشش میده.
موفق باشید

----------


## Twoplus2010

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

----------


## مهدی فرزاد

سلام
لازم دونستم چند نکته رو ذکر کنم
1- هدف شما از درست کردن این تاپیک این هست که یک سری افراد برای شما آموزش تهیه کننده در اینجا بگذارند ؟؟؟ با در آموزش ها همه مشارکت کنند؟؟؟ اگر حالت دوم هست پس به اسرار از دیگران چیزی رو نخواهید
2- ساخت استایل برای هر کنترل مقوله مفصلی هست و نیاز به یک سری آشنایی ها و پیش نیاز ها داره و توضیح مطالب به صورت نوشتاری بسیار طولانی و وقت گیر هست ( باور کنید تمام مطالب رو نمیشه به این راحتی در قالب نوشته بیان کرد ) که اگر واقعا من یا امثال من زمان این رو در این حد داشتیم که بشینیم و تمام مطالب رو با توضیح و عکس ( که صد در صد نیاز داره) اینجا میگذاشتیم  ، پس الان 100 کتاب در این مورد نوشته بودیم!!!
3- چرا با بی انصافی میگید تالار WPF ضعیفه چون آموزشی که شما میخواید رو کسی براتون نمیگذاره؟؟؟؟؟ چند تالار گفتگو خارجی همیچین آموزش هایی رو داره و گذاشته؟؟؟؟؟ اگر هست پس بجای این حرف ها لینکش رو بگذارید تا دیگران استفاده کنند
4- معدود سایت های خارجی هم هستند که چند آموزش یا نکته ساده رو قرار دادند نه بیشتر 
5- تمام ویدئو های خارجی هم که با عدم رعایت کپی رایت انتشار پیدا کردن ،فقط در حد معرفی ابزار هست نه بیشتر
6- یاد گیری ساخت استایل برای کنترل ها چیزی نیست که شما با چند آموزش بتونید اون رو انجام بدید !! نیاز به تجربه داره . این آموزش های ناقص من رو اگه با دقت نگاه کنید و مفهوم مطلب رو درک کند ( روش کار رو حفظ نکنید ) میتونید بزای همه کنترل ها با کوشش و سختی کشیدن و تجربه کردن و شب بیدار بودن استایل لازم رو ایجاد کنید

در کل دقت کنید وقتی میخواید استایل یک کنترل رو ویرایش کنید و وارد فضای ویرایش اون استایل شدید ( در نرم افزار Blend) دقت کنید چه کنترل ها و آبجکت هایی در اون استایل به شکل پیش فرض قرار داره و هرکدوم چه نقشی رو در اون استایل بازی میکنند. وقتی این مطلب رو فهمیدید میتوندی برای تغییر اونها و جایگزینی اونها با کنترل های مناسب اقدام کنید

----------


## Twoplus2010

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

----------


## مهدی فرزاد

سلام



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


من اصلا ناراحت نشدم و این برداشت ها رو که شما گفتید نکردم! من متوجه منظور شما شدم




> خودم میشینم کار می کنم تا این مبحثو یاد بگیرم و انشالله در اینده اموخته های خودمو از طریق همین سایت به دیگران منتقل می کنم


این بهترین و عاقلانه ترین تصمیمی بود که میتونستید بگیرید ، من هم در کنار شما هستم و هر سئوالی و اشکالی که در روند کار براتون پیش اومد بپرسید اگر میدونستم جواب میدم( من خودم به این شکل یاد گرفتم) و حتما دانسته هاتون رو به اشتراک بگذارید




> اگه میشه این تاپیکو حذف کنید


من این کار رو نمیکنم ، این تاپیک برای قرار دادن تجربیات دوستان در ساخت استایل همیشه باز هست اما اگر مطلبی غیر از این نوشته بشه حتما اون مطلب پاک میشه!

با تشکر از شما

----------


## Twoplus2010

فقط یه سوال من الان یه کمبوباکس طراحی کردم دکمه درون اونو می خوام عوض کنم چطور میشه که با کلیک بر روی اون دکمه محتویات داخل کمبو نشان داده میشه انشالله منظورم واضح باشه متشکرم

----------


## مهدی فرزاد

شما برای ویرایش استایل کمبو باکس روی اون کلیک راست کنید و از گزینه Edit Template گزینه Edit a Copy رو انتخاب و وارد محیط ویرایش استایل بشید
در اونجا یک کنترل با نام [ToggleButton] می بینید این همون دکمه کمو هست روی اون هم کلیک راست کرده و با انتخاب گزینه Edit Template  و گزینه Edit a Copy استایل اون رو ویرایش کنید یا با انتخاب گزینه Create Empty کلا از اول اون رو طراحی کنید

----------


## Twoplus2010

اقا مهدی من دکمه رو طراحی کردم ولی وقتی امتحانش می کنم کار نمی کنه یعنی محتویات کمبو را برام نشون نمی ده یعنی این دکمه ای که من ساختم عملکرد دکمه پیش فرض کمبو را نداره متشکرم ایا باید برا اون دکمه ای که ساختم توی trigger  یا  states چیزیی تعریف کنم

----------


## مهدی فرزاد

سلام
شمل استایل رو ویرایش کردید یا از اول ساختید؟
اگر از اول ساختید تنظیمات دیگری لازم داره که کمی براتون پیچیده میشه
شما اون استایل رو از اول با روش ویرایش کردن بسازید
در ضمن اون button نیست یک ToggleButton هست

----------


## i.lover3000

سلام
یه PDF آماده کردم که آموزش ساخت یه یوزر کنترل به عنوان تکست باکس رو میگه.
دانلود کنید ، واسه شروع خیلی خوبه.

اینم عکس اون تکست باکس هست



دانلود PDF
دانلود فایل پروژه

----------


## Twoplus2010

سلام
آیا میشه توی blend اسلایدشو ساخت ؟

----------


## مهدی فرزاد

سلام
با تشکر از زحمت شما
تنها مزیت UserControl که شما ساختید به اینکه بجای اون از استایل استفاده بشه قسمت آیکون اون هست که برای اون یک خاصیت ایجاد شده

من معمولابرای این کار UserControl نمیسازم

خیلی ساده یک استایل برای TextBox میسازم که جای اون آیکون خالی هست بعد در برنامه هر جا نیاز باشه کنترل TextBox رو درون یک Grid میگذارم و یک کنترل Image هم به اون Grid اضافه میکنم و اون رو در جای مناسب تنظیم میکنم و دیگه نیازی ندارم فقط برای یک خاصیت Image برای اون UserControl بسازم( این سلیقه ای هست)

اگر TextBox شما قابلیت مثلا درج فقط عدد ، واحد پول و .... داشته باشه استفاده از UserControl رو پیشنهاد میدم

برای اون رنگ آبی که گفتید در هنگام فکوس هست باید در userControl حتما استایل TextBOx موزد استفاده ویرایش بشه

----------


## armsoftpc

به نام خدا
با سلام من که آموزش دوم که ساخت دکمه شیشه ای است رو دیدم ، مشکل این دکمه این است که وقتی آن را بزرگ میکنیم (نه در محیط ویرایش استایل)، محتویات آن از هم جدا می شود، برای رفع این مشکل باید چه کار کرد ، من قابلیت اتو سایز رو هم برابر fil گذاشتم اما وقتی دکمه رو بزرگ می کنم ، فقط از عرض بزرگ میشه(تکه نقره ای) و از طولی بزرگ نمیشه!!! :متفکر: 
اینم عکسش:
blend_p1.jpg

----------


## Twoplus2010

سلام دوستان من یه استایل تعریف کردم که وقتی با موس روی اون حرکت می کنی تصویر تیره میشه و وقتی با موس رو از روی اون بر میداری تصویر بر می گرد به حالت اول حالا سوال من اینه من می خوام کامپوننت image رو که توش به کار بردم بایندش کنم به source کامپوننت image که بتونم از بیرون ریسورس دیکشنریم به اون تصویر بدم چون الان فقط میشه از داخل ریسورس بهش تصویر بدی شما یه نگاهی به کد من بندازید بیشتر متوجه حرفام میشید  متشکرم

----------


## armsoftpc

منتظریم....

----------


## Twoplus2010

> به نام خدا
> با سلام من که آموزش دوم که ساخت دکمه شیشه ای است رو دیدم ، مشکل این دکمه این است که وقتی آن را بزرگ میکنیم (نه در محیط ویرایش استایل)، محتویات آن از هم جدا می شود، برای رفع این مشکل باید چه کار کرد ، من قابلیت اتو سایز رو هم برابر fil گذاشتم اما وقتی دکمه رو بزرگ می کنم ، فقط از عرض بزرگ میشه(تکه نقره ای) و از طولی بزرگ نمیشه!!!
> اینم عکسش:
> blend_p1.jpg


 شما کدتونو بزارید تا یه نگاهی بهش بندازم

----------


## مهدی فرزاد

> به نام خدا
> با سلام من که آموزش دوم که ساخت دکمه شیشه ای است رو دیدم ، مشکل این دکمه این است که وقتی آن را بزرگ میکنیم (نه در محیط ویرایش استایل)، محتویات آن از هم جدا می شود، برای رفع این مشکل باید چه کار کرد ، من قابلیت اتو سایز رو هم برابر fil گذاشتم اما وقتی دکمه رو بزرگ می کنم ، فقط از عرض بزرگ میشه(تکه نقره ای) و از طولی بزرگ نمیشه!!!
> اینم عکسش:
> blend_p1.jpg


سلام
چک کنید تمام گرید ها و Border ها سایزشون Auto باشه و همچنین برای Max , min طول و عرض  اونها مقداری نداده باشید و VerticalAlignment و HorizentalAlibnment رو هم برابر Stretch قرار داده باشید

اگر صلاح میدوند فایل استایل رو پیوست کنید تا من دقیقا بگم کجای کار رو اشتباه کردید

----------


## helpsos

سلام به همگی

  برای شروع بهتون میگم که کافیه که روی اکثر کنترل ها کلیک راست کرده و از  Edit Template\Edit a Copy  را انتخاب نمایید .حالا تمام قسمت های اون کنترل برای شما تفکیک میشه که میتونید یا اونها را تغییر بدید یا اینکه کلا پاکشون کنید و خودتون یه چیزی طراحی کنید فقط حواستون به [ContentPresenter] باشه که پاک نشه. همین

----------


## Twoplus2010

یه سوال
من توی مراحل ساخت یه کنترل این کد رو دیدم 
<Trigger Property="IsChecked" Value="False">
       <Setter Property="Visibility" Value="Collapsed" TargetName="CheckdMark"/>
      </Trigger>
وظیفه value در اینجا چیه متشکرم

----------


## مهدی فرزاد

سلام
مقدار خاصیت مورد اشاره رو مشخص میکنه که در اینجا برای IsChecked برابر False و برای Visibility کنترل CheckdMark برابر Collapsed هست

----------


## Twoplus2010

سلام دوستان
ایا میشه توی Microsoft Blend  افکت ساخت چون 2 تا افکت بیشتر نداره ( DropShadow و Blure Effect ) رو داره  متشکرم

----------


## کاربر مبتدی

آقای مهدی فرزاد من خیلی فیلمهای آموزشی شما رو دوست داشتم هیچ منبع فارسی دیگه ای هم پیدا نکردم کاشکی ادامه میدادید خیلی حیف شد :افسرده:

----------


## مهدی فرزاد

> آقای مهدی فرزاد من خیلی فیلمهای آموزشی شما رو دوست داشتم هیچ منبع فارسی دیگه ای هم پیدا نکردم کاشکی ادامه میدادید خیلی حیف شد


متاسفانه وقتی آموزش هایی رو که رایگان قرار دادم در مشهد داره فروخته میشه دیگه انگیزه ای برای ادامه ندارم هرچند که آماده هستند

----------


## butterfly8528

سلام .
مهدی جان ممنون بابت آموزش هات ، شما کارت رو ادامه بده ، از این آدم های... همیشه و همه جا هست ، شما به دل نگیر .

----------


## کاربر مبتدی

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

----------


## hossein_ignore

پس کو این آموزش؟! button که ساده ترین چیزه! اگه میشه آموزش ویدئویی از ساخت DataGrid یا ComboBox یا DateTimePicker یا . . .  بذارید! ممنون

----------

