نمایش نتایج 1 تا 5 از 5

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

  1. #1
    کاربر دائمی آواتار PetekDincos
    تاریخ عضویت
    آبان 1389
    محل زندگی
    توهم
    پست
    594

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

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

    // 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);

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

  2. #2
    VIP آواتار gwbasic
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    42
    پست
    982

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

    باید از 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);


  3. #3
    کاربر دائمی آواتار PetekDincos
    تاریخ عضویت
    آبان 1389
    محل زندگی
    توهم
    پست
    594

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

    نقل قول نوشته شده توسط gwbasic مشاهده تاپیک
    باید از 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 می کنه آیا راهی وجود نداره که فقط خود همین رشته بچرخه با تشکر

  4. #4
    VIP آواتار gwbasic
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    42
    پست
    982

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

    احتمال می دادم این سوالو بپرسید!
    شما باید این عمل رو داخل یک Bitmap انجام بدید و در نهایت اونو DrawImage‌کنید جایی که می خواین این باعث می شه که فقط Bitmap بچرخه

  5. #5
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

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

    فکر کنم کد روشن باشد
     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());
    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •