PDA

View Full Version : سوال: چگونه می توان یک متن را هنگام چاپ کمی چرخاند؟



Emad499
چهارشنبه 09 بهمن 1387, 12:13 عصر
چگونه می توان یک متن را هنگام چاپ با دستور e.Graphics.DrawString کمی چرخاند؟

mehdi.mousavi
چهارشنبه 09 بهمن 1387, 12:57 عصر
چگونه می توان یک متن را هنگام چاپ با دستور e.Graphics.DrawString کمی چرخاند؟

سلام.
شما با این دستور نمیتونید اینکارو کنید. بلکه، باید با استفاده ماتریسها، چرخش مورد نظرتون رو اعمال و سپس DrawString کنید. به این ترتیب متن نوشته شده توسط تابع اخیر بصورت مورب نوشته خواهد شد.

برای استفاده از ماتریسهای نامبرده، میتونید از متودهای Transform، RotateTransform و ... موجود بر روی کلاس Graphics استفاده کنید. (برای اطلاعات بیشتر به MSDN مراجعه کنید).

ASKaffash
چهارشنبه 09 بهمن 1387, 14:46 عصر
سلام
از این متد ایده بگیرید :


private void Draw(Graphics e)
{
float W = e.MeasureString(this.Text, this.Font).Width;
float H = e.MeasureString(this.Text, this.Font).Height;
double Ang = ((double)this.Rotate / 180 * Math.PI);
e.TranslateTransform(
(this.ClientRectangle.Width + (float)(H * Math.Sin(Ang)) - (float)(W * Math.Cos(Ang))) / 2,
(this.ClientRectangle.Height - (float)(H * Math.Cos(Ang)) - (float)(W * Math.Sin(Ang))) / 2
);
e.RotateTransform(this.mRotate);
e.DrawString(this.Text, this.Font, new SolidBrush(this.ForeColor), 0f, 0f);
e.ResetTransform();
}

Emad499
چهارشنبه 09 بهمن 1387, 17:21 عصر
با عرض پوزش : چون گرافیک کار نکردم.
زمان فراخوانی تابع مقدار ورودی چه مس باشد؟