PDA

View Full Version : سوال: چطوری ميشه نوشته ای با يك طيف رنگی داشت؟



Armin060
جمعه 30 مرداد 1388, 20:57 عصر
چطوری ميشه نوشته ای با يك طيف رنگی داشت؟
مثلا طيف رنگی ما از 0,0,0 به 255,0,0 به 0,0,255 است. بايد به شكل زير در بياد :

http://barnamenevis.org/forum/attachment.php?attachmentid=35679&stc=1&d=1250873818

SMRAH1
شنبه 31 مرداد 1388, 04:44 صبح
سلام

یک راهش اینه:

private void Form5_Paint(object sender, PaintEventArgs e)
{
string str = "SMAH";
Font font = new Font("Arial",50,FontStyle.Bold);

Size sz = TextRenderer.MeasureText(str, font); //Text Size

int x = 20, y = 20;
LinearGradientBrush lgBrush = new LinearGradientBrush(new Rectangle(0,0,sz.Width,sz.Height),
Color.Blue, Color.Green,LinearGradientMode.Horizontal);
lgBrush.GammaCorrection = true;

Color[] lnColors = { Color.Blue, Color.Red, Color.Green };
float[] positions = { 0.0f, 0.5f, 1.0f };

ColorBlend blend = new ColorBlend();
blend.Colors = lnColors;
blend.Positions = positions;

lgBrush.InterpolationColors = blend;

Rectangle ellipseRect2 = new Rectangle(20, 110, sz.Width, sz.Height);
//e.Graphics.FillEllipse(lgBrush, ellipseRect2);

e.Graphics.DrawString(str, font, lgBrush, x, y);
}

البته راه های دیگه هم داره (مثلا در دات نت 3 به بعد از LinearGradientBrush , GradientBrush در System.Windows.Media استفاده کنی و یا ...)

موفق باشی

Armin060
شنبه 31 مرداد 1388, 05:01 صبح
تشكر.

اما من واسه TextBox می خواستم.

SMRAH1
شنبه 31 مرداد 1388, 14:46 عصر
سلام

یک کنترل سفارشی از TextBox ایجاد کند و در Paint اون از این کد استفاده کن (البته رسم حاشیه فراموش نشه) در ضمن به جای str باید از YourTextBox.Text استفاده کنی.

موفق باشی