ورود

View Full Version : تغییر استایل کنترل



Twoplus2010
چهارشنبه 14 بهمن 1394, 12:38 عصر
سلام دوستان
من با Wpf Custom User Control یه Button طراحی کردم و برای Button سه تا استایل تعریف کردم حالا می خوام برای این Button یه پروپرتی به نام ChangeStyle تعریف کنم که نام استایل هامو تو داشته یاشم مثلا ( FlatButton, Windows8 , Windows7 ....) و در حالت طراحی با انتخاب هر کدوم از این گزینه ها استایل مربوط به خودش روی باتن اعمال بشه مثل کنترل های تلریک که توی پروپرتیشون یه گزینه هست که میشه استایل کنترل هارو عوض کرد چجور می تونم این کارو بکنم متشکرم

AbbasSediqi
شنبه 29 اسفند 1394, 08:14 صبح
دوست عزیز اول بفرمایید که نوع طراحی استایل ها رو بفرمایید بعد بهتون بگم چه طور این کار رو انجام بدید

چون اگه از resources dictionary استفاده کرده باشی که راحته

یه enum احتایجه با اسم اسنایل ها ( چون راحت تره )

و بعد ساخت یه property برای اجرا و ریسپاند به تغییرات همین

حالا اگه کامل نبود بفرمایید نمونه قرار بدم

البته به چه زبانی csharp , VB ?

AbbasSediqi
شنبه 29 اسفند 1394, 08:17 صبح
بعد صرفا برای اطلاع خدمتتون عرض کنم که برای ساخت کنترل در شرایط بسیار خاص از usercontrol استفاده کن
ساخت کنترل های سفارشی با resource Dictionary راحت تره و سریع تر

Twoplus2010
شنبه 29 اسفند 1394, 09:15 صبح
بعد صرفا برای اطلاع خدمتتون عرض کنم که برای ساخت کنترل در شرایط بسیار خاص از usercontrol استفاده کن
ساخت کنرل های سفارشی با resource Dictionary راحت تره و سریع تر
سلام دوست عزیز اگه میشه به زبان سی شارپ نمونه برنامه رو بذارید متشکرم

AbbasSediqi
شنبه 29 اسفند 1394, 14:22 عصر
فرض بر اینه که اسم کنترل button شما در usercontrol که به صورت فرضی CTG در نظر گرفتم

خوب در این حالت کد برای UserControl شما میشه


using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
public class UserControl1
{
public enum Styles
{
Windows7,
Windows8,
FlatButton
}
Styles ThemeSelected;
public Styles Theme {
get { return ThemeSelected; }
set {
switch (value) {
case Styles.Windows7:
CTG.Style = FindResource("Windows7");
break;
case Styles.Windows8:
CTG.Style = FindResource("Windows8");
break;
case Styles.FlatButton:
CTG.Style = FindResource("FlatButton");
break;
}
ThemeSelected = value;
}
}
}

AbbasSediqi
شنبه 29 اسفند 1394, 14:27 عصر
برای تغییر style کافیه که در UserControl property بعد از add بر روی Theme رفته و هرکدوم از Style ها رو که خواستید انتخاب کنید بعد Style تغییر میکنه

یاحق

aliramazani
یک شنبه 29 فروردین 1395, 13:39 عصر
چطوری توی mainWindow و دیگر پنجره ها هم اعما بشه؟