ورود

نسخه کامل مشاهده نسخه کامل : تغيير theme در c#



persian_arian
29-12-2011, 14:52
سلام
من يک برنامه اي دارم مي نويسم که داخلش توانايي تغيير theme را کاربر داشته باشد به طوري که بر روي همه فرم ها اعمال بشه.
من چه طور مي تونم اين کار را انجام بدم .ممنون ميشم کمکم کنيد بهش احتياج دارم

Msba
29-12-2011, 22:19
با کومپوننت:
معمولا کومپوننت های DevXprience یا همون DX خودمون این امکان رو دارند. کافیه تا تمامی عناصر رو روی Default Skin ست کنید. با تغییر Default همه تم ها عوض می شود.
بدون کمپوننت:
1-شما یک متغیر static روی فرم اصلیتون تعریف می کنید. بهتر enum باشه.
2-یک کلاس تعریف می کنید که توش یک متد با آرگومان enum که ساختید وجود داشته باشه.و یک آرگومان دیگه که خود فرمه که ref می شود.
3-حالا مقدار آرگمان enum را با یک switch بررسی کنید و تغییرات لازم رو تو فرو و Controls آن بدهید.
4- فرم و عناصر آن را refresh کنید.
5-در بخش بازگشایی فرم ها یا constactor فرم اون متد رو فراخونی کنید.

کاربر با تغییر آرگومان enum ی theme را عوض می کند.
کافیه تا با کلاس Application.OpenForms فرم های باز رو پیدا کرده و به اون متد ارسال کنید.

روش های دیگری هم هست.

موفق باشید.

mvsoft
05-01-2012, 12:25
سلام من نمیدونم چرا برا هر کاری میریم به سراغ کامپوننت اینجوری که ما برنامه نویسی نمیکنیم اسمبل مییکنم! هرچند یه جاهایی استفاده از کامپوننت مفیده دوست عزیز برای اینکار باید توی فتوشاپ یا هر برنامه ی گرافیکی دیگه ظاهر فرم هات و قالب کلی برنامت رو طراحی کنی بعد میتونی برای استفاده ی راحتتر خودت کامپوننت اختصاضی خودت رو طراحی کنی و یا اگه پروژت کوچیکه اونا رو توی پبکچر باکس ها و ... جایگذاری کنی در ضمن بردر فرمت رو هم بر میداری برای حرکت فرم هم سرچ کنی توی انجمن به جواب میرشی . در ضمن برای تعویض فرم هم میتونی تم هات رو بصورت فایل زیپ بذاری کنار بزنامه و توی یه پوشه ی مخفی اکسترکت کنی و یا از طریق آدرس دهی رجستری یا فایل محتویات و تصاویر روی توی برنامت جایگذاری کنی. البته این الگوریتمیه که من ازش استفاده میکنم یه کم به برنامه های ساخته شده دقت کنی طرز کارشونو میفهمی. موفق باشی.