خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه اضافه کردن گرافیک به یک برنامه C# Windows Form

Windows Forms چارچوبی است که به شما امکان می دهد برنامه های دسکتاپ بسازید. می‌توانید اجزایی مانند دکمه‌ها را کلیک کرده و روی یک رابط کاربری بصری بکشید. همچنین به شما کمک می کند تا به صورت دستی اشکال مختلفی را در کد خود ایجاد کنید.

Windows Forms چارچوبی است که به شما امکان می دهد برنامه های دسکتاپ بسازید. می‌توانید اجزایی مانند دکمه‌ها را کلیک کرده و روی یک رابط کاربری بصری بکشید. همچنین به شما کمک می کند تا به صورت دستی اشکال مختلفی را در کد خود ایجاد کنید.

این مقاله به شما نشان می دهد که چگونه خطوط، اشکال و تصاویر را به برنامه خود اضافه کنید. این آموزش از Visual Studio 2019 Community Edition برای نمایش نمونه‌ها استفاده می‌کند.

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

Windows Forms از زبان برنامه نویسی C# استفاده می کند. کلاس‌ها و روش‌های داخلی آن به شما امکان می‌دهد اشکال مختلفی را روی بوم فرم ویندوز بکشید. این شامل کلاس های Graphics، Pen، Color و Brush است.

کلاس

توضیحات

گرافیک

کلاس Graphics به شما اجازه می دهد تا اشکال و خطوط را روی بوم بکشید. شامل روش هایی مانند:

  • DrawLine (قلم، نقطه 1، نقطه 2)
  • مستطیل رسم (x، y، عرض، ارتفاع)
  • DrawPolygon (Pen، PointF[])

قلم

کلاس Pen به شما اجازه می دهد تا ویژگی های یک نوک قلم را مشخص کنید که می توانید از آن برای ترسیم اشکال خود استفاده کنید. می توانید ویژگی هایی مانند رنگ، ضخامت یا سبک خط تیره را مشخص کنید. روش ها عبارتند از:

  • SetLineCap (LineCap، LineCap، DashCap)

رنگ

یک شی رنگی که از مقادیر R (قرمز)، G (سبز) و B (آبی) تشکیل شده است. برای بسیاری از روش‌های داخلی که شکل‌ها را ایجاد می‌کنند، به یک آبجکت رنگی نیاز دارید.

SolidBrush، HatchBrush، TextureBrush

این کلاس های براش از رابط “Brush” مشتق شده اند. این کلاس ها به شما امکان می دهند در فضاهای خالی روی بوم رنگ آمیزی کنید. همچنین می توانید فضاها را با استفاده از الگوها یا بافت های مختلف پر کنید. می توانید ویژگی هایی مانند رنگ را مشخص کنید.

مستطیل، خط، چند ضلعی، بیضی

می توانید بر اساس این اشکال اشیاء ایجاد کنید و هنگام فراخوانی متدهایی مانند DrawRectangle() از آنها استفاده کنید. به جای ارسال x، y، عرض و ارتفاع به عنوان آرگومان، می‌توانید به جای آن یک شی Rectangle موجود را ارسال کنید.

مطلب مرتبط:   نحوه تجزیه و تحلیل اسناد با LangChain و OpenAI API

برای مشاهده کد منبع برای یک مثال در حال اجرا از آموزش بالا، از مخزن GitHub دیدن کنید. پس از ایجاد یک برنامه Winforms می توانید نمونه های زیر را امتحان کنید.

نحوه اضافه کردن یک رنگ به رویداد Handler بارگذاری فرم

ابتدا یک کنترل کننده رویداد اضافه کنید تا در هنگام بارگیری بوم، شکل ها را ترسیم کند.

  1. یک تابع Paint برای form.private void Form1_Paint (فرستنده شی، PaintEventArgs e) اضافه کنید{    // کد به اینجا می‌رود}
  2. وارد تب Design View شوید.
  3. در پنجره Properties، نماد رعد و برق را انتخاب کنید تا تب “رویدادها” باز شود.
  4. در “Paint”، در قسمت “Appearance”، تابع Form1_Paint را انتخاب کنید. این تابع در هنگام اجرای برنامه اجرا می شود.

private void Form1_Paint(object sender, PaintEventArgs e)
{
    // Code goes here
}

Winforms نحوه اضافه کردن یک رویداد رنگ را نشان می دهد

نحوه رسم خطوط روی بوم فرم ویندوز

می توانید از رنگ، قلم و متد DrawLine() برای کشیدن خطوط روی بوم استفاده کنید.

  1. در داخل تابع ()Form1_Paint، یک شی Color با رنگی که می‌خواهید خط باشد ایجاد کنید. سپس یک شی Pen ایجاد کنید تا خط را با آن رسم کنید.Color black = Color.FromArgb(255, 0, 0, 0);Pen blackPen = new Pen(black);
  2. متد DrawLine() از کلاس Graphics یک خط را با استفاده از قلم رسم می کند. با این کار شروع به کشیدن یک خط از یک موقعیت x، y به موقعیت دیگر x، y می شود.
  3. می‌توانید ویژگی‌های شی pen را تغییر دهید تا عرض، سبک خط تیره و شروع یا پایان آن را تغییر دهید cap.blackPen.Width = 20;blackPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;blackPen.StartCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;e.Graphics.DrawLine(blackPen, 300, 200, 800, 200);
  4. دکمه سبز رنگ پخش را در بالای ویژوال استودیو فشار دهید تا تغییرات را مشاهده کنید.

Color black = Color.FromArgb(255, 0, 0, 0);
Pen blackPen = new Pen(black);

e.Graphics.DrawLine(blackPen, 300, 200, 800, 200);

blackPen.Width = 20;
blackPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
blackPen.StartCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;
e.Graphics.DrawLine(blackPen, 300, 200, 800, 200);

برنامه ویژوال استودیو در حال اجرا با یک خط

نحوه رسم اشکالی مانند مستطیل و دایره

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

  1. مطابق مراحل قبل یک شی Color and Pen ایجاد کنید. سپس از متد DrawRectangle() برای ایجاد مستطیل استفاده کنید. آرگومان ها مختصات x و y برای سمت چپ بالای مستطیل به همراه عرض و ارتفاع آن هستند. رنگ قرمز = Color.FromArgb(255, 255, 0, 0);Pen redPen = new Pen(red);redPen .Width = 5;e.Graphics.DrawRectangle(redPen, 100, 100, 500, 200)؛
  2. همچنین می توانید با استفاده از کلاس Rectangle یک مستطیل ایجاد کنید. ابتدا یک شی Rectangle ایجاد کنید. آرگومان ها همچنین مختصات x و y برای گوشه بالا سمت چپ، عرض و ارتفاع هستند. مستطیل مستطیل = مستطیل جدید (100، 350، 500، 200);
  3. برای رسم مستطیل از تابع DrawRectangle() استفاده کنید. به جای عبور x، y، عرض و ارتفاع مانند قبل، می توانید به جای آن از شی Rectangle استفاده کنید.e.Graphics.DrawRectangle(redPen, rectangle);
  4. دکمه سبز رنگ پخش را در بالای ویژوال استودیو فشار دهید تا تغییرات را مشاهده کنید.
  5. برای ترسیم اشکال دیگر به کد بازگردید. از تابع DrawEllipse() برای رسم دایره استفاده کنید.Color green = Color.FromArgb(255, 0, 255, 0);Pen greenPen = new Pen(green);greenPen.Width = 5;e.Graphics.DrawEllipse(greenPen, 400، 150، 400، 400); هنگامی که یک دایره رسم می کنید، مختصات x و y (x=400، y=150) به گوشه سمت چپ بالای دایره اشاره دارد، نه مرکز دایره.
  6. برای رسم اشکال دیگر مانند مثلث یا شش ضلعی از متد DrawPolygon() استفاده کنید. در اینجا می توانید لیستی از مختصات را برای نشان دادن نقاط شکل مشخص کنید. رنگ آبی = رنگ.FromArgb(255, 0, 0, 255);Pen bluePen = new Pen(blue);bluePen.Width = 5;PointF[] مختصاتForTriangle = New PointF[] {    new PointF(400, 150),    جدید PointF(300، 300)،    New PointF(500، 300)};e.Graphics.DrawPolygon(bluePen، مختصاتForTriangle)؛ متد DrawPolygon() خطوطی را بین نقاط مشخص شده ترسیم می کند. را

Color red = Color.FromArgb(255, 255, 0, 0);
Pen redPen = new Pen(red);
redPen.Width = 5;
e.Graphics.DrawRectangle(redPen, 100, 100, 500, 200);

Rectangle rectangle = new Rectangle(100, 350, 500, 200);

e.Graphics.DrawRectangle(redPen, rectangle);

برنامه ویژوال استودیو برای نمایش مستطیل ها اجرا می شود

Color green = Color.FromArgb(255, 0, 255, 0);
Pen greenPen = new Pen(green);
greenPen.Width = 5;
e.Graphics.DrawEllipse(greenPen, 400, 150, 400, 400);

از نزدیک مثال دایره روی بوم و جایی که X،Y شروع می شود

Color blue = Color.FromArgb(255, 0, 0, 255);
Pen bluePen = new Pen(blue);
bluePen.Width = 5;

PointF[] coordinatesForTriangle = new PointF[] {
    new PointF(400, 150),
    new PointF(300, 300),
    new PointF(500, 300)
};

e.Graphics.DrawPolygon(bluePen, coordinatesForTriangle);

برنامه ویژوال استودیو برای نمایش مثلث روی بوم اجرا می شود

نحوه استفاده از کلاس براش برای پر کردن اشکال با رنگ

می توانید از متدهای FillRectangle()، FillEllipses() یا FillTriangle() برای ایجاد اشکال با رنگ ثابت استفاده کنید.

  1. ابتدا یک شی brush ایجاد کنید. رنگ بنفش = Color.FromArgb(255, 128, 0, 0);SolidBrush solidBrush = new SolidBrush(بنفش);
  2. از متدهای FillRectangle()، FillEllipses() یا FillTriangle() استفاده کنید. آنها مانند توابع ترسیم بالا کار می کنند، به جز اینکه به جای قلم، از یک شی Brush استفاده می کنند. 50، 200، 200);e.Graphics.FillPolygon(solidBrush, new PointF[] { new PointF(700, 150), new PointF(600, 300), new PointF(800, 300) });
  3. همچنین می توانید به جای ارائه مختصات، یک شی شکل را مستقیماً وارد کنید. مستطیل مستطیل = مستطیل جدید (100، 350، 500، 200);
  4. از HatchBrush برای پر کردن شکل با استفاده از سبک پر کردن متفاوتی مانند الگوی افقی یا عمودی استفاده کنید. رنگ آبی = Color.FromArgb(255, 0, 0, 255)؛ رنگ سبز = Color.FromArgb(255, 0, 255, 0);HatchBrush hatchBrush = HatchBrush جدید(HatchStyle.Horizontal، سبز، آبی);e.Graphics.FillRectangle(HatchBrush, 50, 50, 200, 250);
  5. می توانید از TextureBrush برای پر کردن یک شکل با استفاده از یک تصویر استفاده کنید. در اینجا، با اشاره به یک فایل تصویری، یک بیت مپ ایجاد کنید. به جای ایجاد یک قلم مو با استفاده از رنگ، آن را با استفاده از تصویر ایجاد کنید. Bitmap image = (Bitmap)Image.FromFile(@”C:\Users\Sharl\Desktop\flag.bmp”، true);TextureBrush textureBrush = new TextureBrush( تصویر)؛ e.Graphics.FillRectangle(textureBrush، 100، 100، 500، 400)؛

Color purple = Color.FromArgb(255, 128, 0, 0);
SolidBrush solidBrush = new SolidBrush(purple);

e.Graphics.FillRectangle(solidBrush, 50, 50, 200, 250);
e.Graphics.FillEllipse(solidBrush, 300, 50, 200, 200);
e.Graphics.FillPolygon(solidBrush, new PointF[] { new PointF(700, 150), new PointF(600, 300), new PointF(800, 300) });

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

Rectangle rectangle = new Rectangle(100, 350, 500, 200);
e.Graphics.FillRectangle(solidBrush, rectangle);

Color blue = Color.FromArgb(255, 0, 0, 255);
Color green = Color.FromArgb(255, 0, 255, 0);
HatchBrush hatchBrush = new HatchBrush(HatchStyle.Horizontal, green, blue);
e.Graphics.FillRectangle(hatchBrush, 50, 50, 200, 250);

برنامه ویژوال استودیو برای نشان دادن مستطیل با طرح طرح افقی باز می شود

Bitmap image = (Bitmap)Image.FromFile(@"C:\Users\Sharl\Desktop\flag.bmp", true);
TextureBrush textureBrush = new TextureBrush(image);
e.Graphics.FillRectangle(textureBrush, 100, 100, 500, 400);

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

نحوه رندر کردن تصاویر در فرم

برای رندر کردن یک تصویر، یک شیء کنترل PictureBox ایجاد کنید و آن را به فرم اضافه کنید.

  1. یک شیء کنترل PictureBox با استفاده از یک فایل تصویری ایجاد کنید.PictureBox picture = new PictureBox();picture.ImageLocation = @”C:\Users\Sharl\Desktop\flagLarge.bmp”;
  2. اندازه تصویر را تنظیم کنید و آن را به فرم اضافه کنید تا renders.picture.SizeMode = PictureBoxSizeMode.AutoSize;this.Controls.Add(picture);
  3. برای مشاهده تصویر، دکمه شروع سبز رنگ را در بالا فشار دهید.

PictureBox picture = new PictureBox();
picture.ImageLocation = @"C:\Users\Sharl\Desktop\flagLarge.bmp";

picture.SizeMode = PictureBoxSizeMode.AutoSize;
this.Controls.Add(picture);

برنامه Winforms برای نمایش تصویر ارائه شده در فرم باز می شود

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

اکنون باید بدانید که چگونه خطوط، اشکال و تصاویر را به فرم ویندوز خود اضافه کنید. شما می توانید اشکال را برای ایجاد اشکال جدید ترکیب کنید. همچنین می توانید با توابع داخلی بازی کنید تا اشکال پیچیده تری ایجاد کنید.

مطلب مرتبط:   راهنمای کار با فایل های متنی در Go