PDA

View Full Version : رسم رشته فارسی به صورت افقی از بالا به پایین



PetekDincos
شنبه 26 آذر 1390, 10:39 صبح
با سلام
من برای رسم یک رشته و عمودی نوشتن اون از کد زیر استفاده می کنم


// Create string to draw.
String drawString = "رشته کامپیوتر";
// Create font and brush.
Font drawFont = new Font("2 Homa", 12);
SolidBrush drawBrush = new SolidBrush(Color.Black);
float x = 20.0F;
float y = 50.0F;
StringFormat drawFormat = new StringFormat();
drawFormat.FormatFlags = StringFormatFlags.DirectionRightToLeft;
drawFormat.FormatFlags = StringFormatFlags.DirectionVertical;
e.Graphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);

و چون نوشته من فارسیه نوشته رو از پایین به بالا می نویسه اما من می خوام نوشته رو از بالا به پایین بنویسم برای این کار چه کار کنم ممنون می شم راهنمایی بفرمایید با تشکر

gwbasic
شنبه 26 آذر 1390, 22:24 عصر
باید از Graphics.RotateTransform‌ استفاده کنید


String drawString = "رشته کامپیوتر";
Font drawFont = new Font("2 Homa", 12);
SolidBrush drawBrush = new SolidBrush(Color.Black);
float x = 20.0F;
float y = 50.0F;
e.Graphics.TranslateTransform(420, 450);
e.Graphics.RotateTransform(270);
e.Graphics.DrawString(drawString, drawFont, drawBrush, 0, 0);

PetekDincos
یک شنبه 27 آذر 1390, 19:24 عصر
باید از Graphics.RotateTransform‌ استفاده کنید


String drawString = "رشته کامپیوتر";
Font drawFont = new Font("2 Homa", 12);
SolidBrush drawBrush = new SolidBrush(Color.Black);
float x = 20.0F;
float y = 50.0F;
e.Graphics.TranslateTransform(420, 450);
e.Graphics.RotateTransform(270);
e.Graphics.DrawString(drawString, drawFont, drawBrush, 0, 0);


با سلام
من این کار رو برای نوشتن یک رشته در کنار صفحه گزارش استفاده می کنم اما با این روشی که گفتید می یاد و کل گزارش رو Rotate می کنه آیا راهی وجود نداره که فقط خود همین رشته بچرخه با تشکر

gwbasic
یک شنبه 27 آذر 1390, 21:25 عصر
احتمال می دادم این سوالو بپرسید!
شما باید این عمل رو داخل یک Bitmap انجام بدید و در نهایت اونو DrawImage‌کنید جایی که می خواین این باعث می شه که فقط Bitmap بچرخه

linux
یک شنبه 27 آذر 1390, 22:12 عصر
فکر کنم کد روشن باشد
void DrawTextUpDown(string txt,Graphics g)
{

var fnt = new Font("tahoma",12);
var drawBrush = new SolidBrush(Color.Black);
float x = 200.0F;
float y = 100.0F;
g.TranslateTransform(100, 450);
g.RotateTransform(270);
g.DrawString(txt, fnt, drawBrush, 100, 100);
}
void DrawText(string txt, Graphics g)
{
var fnt = new Font("tahoma", 12);
var drawBrush = new SolidBrush(Color.Black);
g.DrawString(txt, fnt, drawBrush, 0, 0);
}
private void button1_Click(object sender, EventArgs e)
{
DrawTextUpDown("سلام",panel1.CreateGraphics());
DrawText("حال شما؟",panel1.CreateGraphics());
}