سورس کد سایت کارخانه تولید رنگ با php
سورس کد سایت کارخانه تولید رنگ با php
1397-10-24
سورس اندروید ویرایشگر عکس با کاتلین
سورس اندروید ویرایشگر عکس با کاتلین
1397-10-27
کلاس Graphics از کتابخانه Drawing در سی شارپ

کلاس Graphics از کتابخانه Drawing در سی شارپ

کلاس Graphics از کتابخانه Drawing در سی شارپ C# ، هدف از این آموزش این است که شما را با طراحی گرافیک در سی شارپ آشنا کنیم. طراحی و نقاشی در سی شارپ با استفاده از Graphics Object انجام می شود.

کلاس Graphics از کتابخانه Drawing در سی شارپ :

ایجاد یک شی گرافیکی یا Graphics Object

اولین گام در این آموزش این است که شما یک پروژه از نوع ویندوز فرم در نرم افزار ویژوال استدیو ایجاد کنید برای این کار مسیر زیر را در Ide visual studio  طی نمایید.

File>>New>>Project>>Visual C#>>Windows Forms Application

و یک نام دلخواه برای پروژه بنویسید و روی ایجاد کلیک کنید.به محض ایجاد شدن پروژه یک فرم در ناحیه طراحی قرار میگیرد.سپس بر روی فرم کلیک راست کنید و به Properties فرم بروید. و از قسمت رویداد ها یا Events گزینه paint را انتخاب و دو بار بر روی آن کلیک کنید تا صفحه ویرایش کدها نمایش داده شود.

ما در رویداد paint میتوانیم متد گرافیک آبجکت را فرخوانی کنیم و یک نمونه از آن ایجاد کنیم و با استفاده از این میتوانیم به آبجکت های آن برای طراحی گرافیکی دسترسی پیدا کنیم.

کد نمونه زیر این روند را به ما نشان میدهد :

private void Form1_Paint(object sender, PaintEventArgs e)
{
System.Drawing.Graphics graphicsObj;
graphicsObj = this.CreateGraphics();
}

 

با این کد ما اکنون یک شی گرافیکی داریم برای استفاده از آن به یک Pen نیاز داریم.در ادامه آموزش نحوه ایجاد Pen را بیان میکنیم.

ایجاد Pen یا قلم در C#

Graphics Object بدون استفاده از pen هیچ عملی برای طراحی نمیتواند انجام دهد.همانند دفتر نقاشی که بدون قلم نقاشی نمیتوان در آن چیزی رسم کرد.برای ایجاد قلم از دستور زیر میتوانیم استفاده کنیم :

Pen variable_name = new Pen (color, width);

در دستور بالا برای ایجاد pen یک نمونه از کلاس pen ایجاد میکنیم. و در قسمت variable_name یک نام دلخواه به آن اختصاص میدهیم و این کلاس دو پارامتر رنگ و اندازه قلم را دریافت میکند.به عنوان مثال ما میتوانیم یک قلم قرمز رنگ با عرض ۵ پیکسل ایجاد کنیم.

دستور زیر را مشاهده کنید.

private void Form1_Paint(object sender, PaintEventArgs e)

{
System.Drawing.Graphics graphicsObj;

graphicsObj = this.CreateGraphics();

Pen myPen = new Pen(System.Drawing.Color.Red, 5);
}

 

یک شی قلم خصوصیات دیگری از جمله DashStyle و غیره دارد که کار DashStyle تغییر سبک خط به روش های زیر است.

(Dash, DashDot, DashDotDot, Dot, Solid)

و سبک های رنگ و عرض را همان موقع ای که قلم را ایجاد میکنیم. بیان میشود.

myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot;
            myPen.Color = System.Drawing.Color.RoyalBlue;
            myPen.Width = 3;

 

در ادامه به واسطه رویداد paint و آبجکت pen به رسم خط میپردازیم.

رسم خط در سی شارپ

برای رسم خط در سی شارپ ما از متد DrawLine از کلاس Graphics Object استفاده میکنیم. آرگومان هایی که این متد دریافت میکند شامل pen  که در بالا کلاس آن را ایجاد کردیم و همچنین نقطه شروع و پایان خط.

به عنوان مثال رسم یک خط از مختصات (۲۰و۲۰) به (۲۰۰و ۲۱۰) در رویداد paint بالا قرار میدهیم. سپس پروژه را اجرا میکنیم و نتیجه را میبینیم.

private void Form1_Paint(object sender, PaintEventArgs e)
{
System.Drawing.Graphics graphicsObj;
graphicsObj = this.CreateGraphics();
Pen myPen = new Pen(System.Drawing.Color.Red, 5);
graphicsObj.DrawLine(myPen, 20, 20, 200, 210);
}

 

کلاس Graphics از کتابخانه Drawing در سی شارپ

کلاس Graphics از کتابخانه Drawing در سی شارپ

رسم مربع و مستطیل در سی شارپ

برای رسم مربع و مستطیل از کلاس GraphicsObject  متد DrawRectangle() را انتخاب میکنیم . دو روش برای کار با این متود وجود دارد. روش اول این است که یک نمونه از شی Rectangle ایجاد کنیم و همراه کلاس Pen  آن را به متود انتقال بدهیم و روش دوم این است که مستقیل شی Rectangle را به متود انتقال بدهیم.

  1. graphicsobj.DrawRectangle(pen, x, y, width, height);
  2. Rectangle rectangleObj = new Rectangle (x, y, width, height);
  3. graphicsobj.DrawRectangle(pen, x, y, rectangleobj);

مثال زیر در رویداد Paint  یک مستطیل ایجاد میکند.

private void Form1_Paint(object sender, PaintEventArgs e)
{
System.Drawing.Graphics graphicsObj;
graphicsObj = this.CreateGraphics();
Pen myPen = new Pen(System.Drawing.Color.Red, 5);
Rectangle myRectangle = new Rectangle(20, 20, 250, 200);
graphicsObj.DrawRectangle(myPen, myRectangle);
}

وقتی پروژه را کامپایل و اجرا میکنیم خروجی دستور بالا به صورت تصویر زیر است :

کلاس Graphics از کتابخانه Drawing در سی شارپ

کلاس Graphics از کتابخانه Drawing در سی شارپ

اگر نیاز به رسم مستطیل های متعددی دارید نیازی به ایجاد یک شی جدید از Rectangle  نیست. از آنجایی که شی Rectangle موجود است.کافی است متد Inflate() را فراخوانی کنیم و کلاس Rectangle  را تغییر دهیم.

Rectangle myRectangle = new Rectangle(20, 20, 250, 200);
myRectangle.Inflate(10, -20); Increase width by 10. Reduce height my 20

رسم بیضی و دایره در سی شارپ

برای رسم بیضی و دایره در سی شارپ از متد DrawEllipse() از کلاس GraphicsObject استفاده میکنیم. همانند رسم مستطیل دو روش مشابه برای رسم دایره هم وجود دارد.

  1. graphicsobj.DrawEllipse(pen, x, y, width, height);
  2. Rectangle rectangleObj = new Rectangle (x, y, width, height);
  3. graphicsobj.DrawEllipse(pen, x, y, rectangleobj);

مثال زیر در رویداد Paint  یک بیضی و دایره را ایجاد میکند.

private void Form1_Paint(object sender, PaintEventArgs e)
{
System.Drawing.Graphics graphicsObj;
graphicsObj = this.CreateGraphics();
Pen myPen = new Pen(System.Drawing.Color.Green, 5);
Rectangle myRectangle = new Rectangle(20, 20, 250, 200);
graphicsObj.DrawEllipse(myPen, myRectangle);
}

 

وقتی پروژه را کامپایل و اجرا میکنیم خروجی دستور بالا به صورت تصویر زیر است :

کلاس Graphics از کتابخانه Drawing در سی شارپ

کلاس Graphics از کتابخانه Drawing در سی شارپ

 

ایجاد متن گرافیکی با گرافیک آبجکت در سی شارپ

برای ایجاد متن گرافیکی از متد DrawText() استفاده میکنیم که به شرح زیر است :

graphicsobj.DrawString(string, font, brush, x, y);

 

برای فونت دادن به متن هم از کلاس فونت استفاده میکنیم. و همچنین برای رسم آن از شی Brush   استفاده میکنیم شی براش همانند شی Pen عمل میکند و مقدار x و y را میگیرد که گوشه بالا و چپ متن را مشخص میکند.

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

Font myFont = new System.Drawing.Font("Helvetica", 40, FontStyle.Italic);

 

در شی Brush  ما رنگ تعیین شده برای رسم را مشخص میکنیم :

 

Brush myBrush = new SolidBrush(System.Drawing.Color.Red);

 

مثال زیر در رویداد Paint یک متن گرافیکی را ایجاد میکند.

 


private void Form1_Paint(object sender, PaintEventArgs e)
{
System.Drawing.Graphics graphicsObj;

graphicsObj = this.CreateGraphics();

Font myFont = new System.Drawing.Font("Helvetica", 40, FontStyle.Italic);

Brush myBrush = new SolidBrush(System.Drawing.Color.Red);

graphicsObj.DrawString("Hello C#", myFont, myBrush, 30, 30);

}
<pre>

 

وقتی پروژه را کامپایل و اجرا میکنیم خروجی دستور بالا به صورت تصویر زیر است :

کلاس Graphics از کتابخانه Drawing در سی شارپ

کلاس Graphics از کتابخانه Drawing در سی شارپ

 

امیدوارم این پست براتون مفید بوده باشه و ازش استفاده کنید. از طریق راه های ارتباطی زیر میتونید با ما برای درخواست آموزش های اختصاصی و انواع پروژه ها در ارتباط باشید.

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *