PDA

View Full Version : سوال: استفاده از wpf و blend برای ساخت User Control و استفاده در windows application



rezano
پنج شنبه 05 خرداد 1390, 04:23 صبح
با سلام خدمت اساتید محترم


من به زبان xaml اشنایی ندارم
ولی با ویدیو هایی که در این تاپیک (http://barnamenevis.org/showthread.php?251604-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%88%DB%8C%D8%AF%D8%A6%D9%88%DB%8C%DB%8C-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-Blend) گزاشته شده بود (ضمن تشکر از جناب Mehdi550u (http://barnamenevis.org/member.php?67273-Mehdi550u) ) تونستم با نرم افزار blend اون دکمه و کنترل هایی رو که می خواستم بسازم.

حالا مشکلم اینجاست:
یه پروژه با blend ساختم که یه پیکچر ساده داره و به اون حالت reflex میده
بعد پروژه رو با ویژوال استادیو که باز کردم یه دکمه روی صفحه گزاشتم
توی کد #C خواستم با یه OpenFileDialog تصویر لود کنم و توی همون پیکچر باکس نشون بدم و همون افکت رو داشته باشه.
با این کد تونستم OpenFileDialog رو بیارم


Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.ShowDialog();


ولی بعد نتونستم FileName ش رو به خاصیت تصویر پیکچر باکسم اختصاص بدم. :گریه:
حالا این وسط 2 تا سوال دارم
1.اینکه چطور یه عکس رو دینامیک به پیکچر باکسم اختصاص بدم؟
ایا فقط با xaml میشه؟ اگه با #C میشه لطفا هر دوش رو توضیح بدید.
(فایلش رو هم ضمیمه کردم)



http://lineupload.tk/images/bo4wc4skb7nkg53o0y6d.jpg



2. و سوال دوم که مهم تره و تاپیک رو برای اون زدم:
ایا میشه همون دکمه هایی که توی ویدیو ها اموزش داده شده بود و سایر کنترل ها یا مثلا همین کنترل ایمیجی که گزاشتم که خودش، خودش رو کپی میکنه و افکت رو روش تاثیر میده رو ، میشه به عنوان یه یوزر کنترل به جعبه ابزار windows application اضافه کرد؟(که فعلا نیازی به درگیر شدن با کد xaml نباشه؟)
طوری که دیگه فقط روی فرم بیاد و یه سری خصوصیات مثل همون عکس و سایز و ... بگیره
اگه میشه لطفا خیلی مبتدی توضیح بدید :لبخند:



خیلی ممنون از وقتی که گزاشتید و ببخشید که سرتون رو درد آوردم :خجالت:

مهدی فرزاد
پنج شنبه 05 خرداد 1390, 10:39 صبح
سلام

این جواب سئوال اول شما

Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.DefaultExt = ".jpg";
dlg.Filter = "JEPG (.jpg)|*.jpg";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
Image1.Source = new ImageSourceConverter().ConvertFromString(dlg.FileN ame) as ImageSource;
}

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

مهدی فرزاد
پنج شنبه 05 خرداد 1390, 11:06 صبح
خوب حالا جواب سئوال دوم شما

برای اینکار اول شما در WPF یک یوزر کنترل که شامل Image و سایه اون و یک دکمه جهت نمایش هست قرار میدید
میتونید تمام کد ها رو دروه خود یوزر کنترل بنویسید دقیقا مثل کاری که قبلا کردید

حالا یک پروژه WinApp درست میکنید و در همون Solution پروژه WPF ای رو که قبلا اون یوزر کنترل رو توش درست کرده بودید Insert میکند

چون گفتید خیلی مبتدی بگم توضیح میدم که برای این کار روی Solution کلیک رایت میکنید و از منوی Add گزینه Existing Project رو انتخاب میکند
در فرم Winapp یک کنترل ElementHost به فرم اضافه میکنید پروژه رو یک بار Build میکنید حالا روی فلش کوچیک بالا سمت چپ کنترل کلیک میکنید و در کمبو باکس نام یوزر کنترل رو خواهید دید و اونو انتخاب میکنید

70365

این ساده ترین روش هست

ولی در کل من اصلا این کار رو پیشنهاد نمیکنم
تا زمانی که WPF هست چه نیازی به Winapp دارید؟ با همون WPF کار رو انجام بدید

برای شما مثال رو گذاشتم