PDA

View Full Version : تعویض رنگ



Mega7000
چهارشنبه 23 فروردین 1385, 02:02 صبح
سلام
یک دایره داریم که می خواهیم با یک حلقه for هر بار رنگش عوض شود
چه دستوری باید بکار برد؟

razavi_university
چهارشنبه 23 فروردین 1385, 02:17 صبح
دایره رو با چی کشیدی؟
باید خاصیت رنگ این شئ رو عوض کنی؟

dot_net_lover2
چهارشنبه 23 فروردین 1385, 14:35 عصر
اگر با +GDI کار کرده باشی فکر کنم باید هر سری دایره را پاک کنی و دوباره با Brush به رنگ جدید دوباره دایره را رسم کنی.

Mehdi Asgari
چهارشنبه 23 فروردین 1385, 15:42 عصر
Graphics g = this.CreateGraphics();
Rectangle rect = new Rectangle(100,100,100,100);
Pen pen = new Pen(Color.Black,5);
g.DrawEllipse(pen,rect);

SolidBrush brush ;
for(int i = 9; i < 16; ++i)
{
System.Threading.Thread.Sleep(200);
brush = new SolidBrush(Color.FromArgb(i+i,i*i,i+i));
g.FillEllipse(brush,rect);
}

Mega7000
چهارشنبه 23 فروردین 1385, 17:26 عصر
ممنون مهدی جان
توی GDI کولاک کردی

Mega7000
چهارشنبه 23 فروردین 1385, 17:44 عصر
سلام razavi_university
با این دستور:

Graphics obj = this.CreateGraphics();
Rectangle rect = new Rectangle(20,20,100,100);
obj.DrawEllipse(Pens.Black, rect);

Mega7000
چهارشنبه 23 فروردین 1385, 20:49 عصر
حالا اگه خواستیم محیط دایره تغییر رنگ بده،امکانش هست؟(بدون اینکه از تابع rgb استفاده کنیم؟یعنی اینکه کنترل مستقیم روی هر color داشته باشیم)

Mehdi Asgari
چهارشنبه 23 فروردین 1385, 22:35 عصر
منظورتون از محیط دایره ، همون خطی هست که در رسم دایره به کار میره ؟؟؟
اگه اینطوره در مثال قبل ، به جای اون خطی که از FillEllipse استفاده میکنه ، اون خط از
کد خودتون (DrawEllipse) رو قرار بدین.

Mega7000
پنج شنبه 24 فروردین 1385, 13:39 عصر
یه ایده بهتر واسه تعویض رنگ:

string[] s = Enum.GetNames(typeof(KnownColor));
int i = new Random().Next(s.Length - 1);
Pen p = new Pen(new SolidBrush(Color.FromName(s[i])));