تور لحظه آخری
امروز : جمعه ، 23 شهریور 1403    احادیث و روایات:  امام علی (ع):به احترام پدر و معلمت از جای برخیز هرچند فرمان روا باشی.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها




آمار وبسایت

 تعداد کل بازدیدها : 1815221036




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

گرافیک در سی شارپ -


واضح آرشیو وب فارسی:سایت ریسک: گرافیک در سی شارپ saalek110 17 خرداد 1386, 22:30گرافیک در سی شارپ در این تاپیک منظور ما استفاده از کلاسهای System.Drawing است. پس using های ما در این تاپیک همواره شامل System.Drawing باید باشد(که فکر کنم با ساخت یک پروژه ویندوزی خودبخود این using اضافه می شود): using System.Drawing; همچنین در این تاپیک رویدادهایی را بررسی می کنیم. مثل رویداد paint . saalek110 17 خرداد 1386, 22:37اولا من خودم به بازی و گرافیک خیلی علاقه دارم. ولی دوما منظور من از این تاپیک این است که کلاسهای دات نت را ملموس تر بیاموزیم. مثلا بفهمیم که چگونه شی ئی از یک کلاس با شی دیگری از کلاس دیگر ارتباط برقرار می کند. چون در گرافیک شکلها هستند که موضوعات کار ما را تشکیل می دهند و خیلی ملموس تر میشه ارتباطات کلاسها را فهمید تا مثلا در کلاسهای دیتابیس. پس من سعی می کنم در این تاپیک تمرینات بیشتری داشته باشیم و هدف باطنی من تسلط بر کلاسهای دات نت است و در درجه بعد کمی تفریح و سرگرمی با بازی با گرافیک. saalek110 17 خرداد 1386, 22:41لوازم کار ما یک پروژه سی شارپ ویندوزی و using کردن همان System.Drawing و کدهایی است که در ادامه بحث می کنیم. من اکثرا عادت دارم کدها را داخل رویداد کلیک یک باتون(دکمه) قرار می دهم. پس اگر در تاپیک ذکر نشد یعنی من در همین رویداد کدم را ریخته ام. saalek110 17 خرداد 1386, 22:56شروع: یک پروژه ویندوزی سی شارپ بسازید. و در رویداد کلیک یک باتون(که به فرم خود باتون را قبلا افزوده اید) کد زیر را بیافزایید: System.Drawing.Graphics my_graph = this.CreateGraphics(); my_graph.DrawRectangle(System.Drawing.Pens.Blue, 80, 20, 40, 40); my_graph.Dispose(); شرح برنامه : شی ئی از کلاس Graphics ایجاد شده. بعد این شی یک مستطیل(در اینجا اضلاع را برابر داده این و مربع شده) رسم کرده. و بعد شی را Dispose کرده ایم. نامهای دلخواه را من در این تاپیک مثل my_graph می سازم. یعنی کلمه my و بعد نوع شی. اعدادی هم که می بینید یا x و y شکل ما هستند یا طول و عرض. من در طول تاپیک شرح نمی دهم. کمی تغییرشان بدهید می فهمید چه هستند. saalek110 17 خرداد 1386, 23:01بحث فنی تر برنامه پست قبل: به آبجکت بروسر بروید و کلاس Graphics را نگاه کنید . چرا سازنده ( متدی همنام کلاس) نیست؟ چرا شی را این طور خلق نکرده ایم؟ System.Drawing.Graphics my_graph = new Graphics(); چرا متدی از فرم ( this ) یعنی CreateGraphics عامل خلق این شی بوده؟ آیا می شود به جای کشیدن مربع خود بر فرم بیاییم مربع خود را بر روی باتون بکشیم؟ در پستهای بعدی به این سئوالات به تدریج جواب می دهیم. saalek110 17 خرداد 1386, 23:06برای پاسخ به آخرین سئوال پست قبل من برنامه زیر را ساختم: System.Drawing.Graphics my_graph = this.button1.CreateGraphics(); my_graph.DrawRectangle(System.Drawing.Pens.Blue, 80, 20, 40, 40); my_graph.Dispose(); دو شکل گذاشتم تا متوجه این قضیه باشیم که مختصات نسبت به دکمه است نه فرم. تصویر بالا موقعی تهیه شده که ماوس هنوز روی دکمه بوده. چرا وقتی ماوس را از روی دکمه کنار می بریم تصویر محو می شود؟ saalek110 17 خرداد 1386, 23:12برای پاسخ به سئوال پست قبل به جای کلیک با ماوس بر باتون با زدن اینتر باعث رسم مربع شوید. و سپس پنجره فرم را آنقدر از صفحه مونیتور خارج کنید که نیمی از مربع آبی رنگ رسم شده توسط کد ما خارج شود. بعد با برگرداندن فرم به وسط صفحه قسمتی که خارچ شده بود از صفحه دیگر وجود ندارد. چه کار کنیم که چنین اتفاقی رخ ندهد؟ saalek110 17 خرداد 1386, 23:57در پستهای قبلی مدام از رویداد کلیک دکمه استفاده شده بود ولی حالا کد زیر را امتحان کنید: private void Form1_Paint(object sender, PaintEventArgs e) { System.Drawing.Graphics my_graph = this.button1.CreateGraphics(); my_graph.DrawRectangle(System.Drawing.Pens.Blue, 80, 20, 40, 40); my_graph.Dispose(); } یعنی در رویداد paint فرم کدمان را قرار دادیم. حالا فرم را از صفحه خارج کنید. موقع باز گرداندن فرم به داخل صفحه می بینید که مربع آبی روی دکمه رسم می شود. همچنین در موقع کلیک دکمه یک لحظه مربع دیده می شود یا موقع ورود و خروج ماوس از روی دکمه. یعنی در این زمانها رویداد paint ااحضار می شود. بهتر است کد زیر را امتحان کنید: System.Drawing.Graphics my_graph = this.button1.CreateGraphics(); my_graph.DrawRectangle(System.Drawing.Pens.Blue, 80, 20, 40, 40); for (int i = 1; i < 100000000; i++) ; my_graph.Dispose(); یعنی یک حلقه هم اضافه کردیم تا رویت مربع راحت تر باشد. با این کار می بینید که وقتی داریم فرم را به صفحه مونیتور برمی گردانیم انگار فرم گیر دارد. ولی موقع حرکت داخل صفحه مونیتور هیچ گیری وجود ندارد . و این به خاطر این است که رویداد paint مسئول رسم موقع به نمایش درآمدن فرم است. موقع شروع برنامه بالا هم مکثی که مشاهده می شود مربوط به این حلقه است. saalek110 18 خرداد 1386, 00:16شرح کد زیر: my_graph.DrawRectangle(System.Drawing.Pens.Blue, 80, 20, 40, 40); کلاس Pens دارای اعضایی static است. یعنی بی ساخت شی از این کلاس می توانیم از اعضایش استفاده کنیم. کار ما را راحت کرده این کلاس در اینجا ولی اگر می خواستیم خودمان pen بسازیم باید مراحلش را طی می کردیم. saalek110 18 خرداد 1386, 00:33و در کد زیر : private void button1_Click(object sender, EventArgs e) { System.Drawing.Graphics my_graph = this.CreateGraphics(); Pen my_Pen = new Pen(Color.Chocolate); my_graph.DrawRectangle(my_Pen, 80, 20, 40, 40); my_graph.Dispose(); } در اینجا ما شی pen را خودمان ساخته ایم. و بعد به عنوان یکی از ورودی های متد DrawRectangle شی my_graph استفاده کرده ایم. کار این متد رسم مستطیل است و منطقی است اگر قلم خود را نوعش را سئوال کند. این متد 3 نوع ورودی می گیرد و هر 3 قلم را مطالبه می کند. شکل زیر: پس به این علت ما از این کلاس شی ساخته ایم. کد زیر: System.Drawing.Pen my_Pen = new System.Drawing.Pen(Color.Chocolate); در زیر می بینید که سازنده کلاس Pen چهار نوع می شود به آن ورودی داد و ما نوع چهارمی را به کار برده ایم. و در زیر باز استفاده از یک عضو استاتیک یک کلاس را می بینیم. در پست قبلی این عضو استاتیک یک Pen بود و در اینجا این عضو استاتیک یک Color می باشد. saalek110 18 خرداد 1386, 16:43در پستهای قبلی با فرمول زیر مستطیل خود را کشیدیم: my_graph.DrawRectangle(System.Drawing.Pens.Blue, 80, 20, 40, 40); حالا نگاهی به متد DrawRectangle از کلاس Graphics می اندازیم: در شکل بالا می بینید که یکی از ورودی های این متد همواره قلم است و ورودی دوم می تواند 4 عدد باشد یا یک : System.Drawing.Rectangle پس می توانیم به جای کد بالا که 4 عدد دادیم بیاییم شی ئی از کلاس(در حقیقت استراکت است نه کلاس. شرح در پست بعدی) System.Drawing.Rectangle بسازیم. System.Drawing.Graphics my_graph = this.CreateGraphics(); Rectangle my_rec1 = new Rectangle(40, 20, 40, 40); // khalghe rec1 my_graph.DrawRectangle(System.Drawing.Pens.Red, my_rec1); // rasme rec1 my_graph.Dispose(); کد بالا را در رویداد کلیک باتون قرار بدهید. saalek110 18 خرداد 1386, 17:04 طبق شکل بالا با کلیک بر روی متد مربوطه در کادر پایین مفصل تر پارامترهای متد را می بینیم. همان طور که می بینید System.Drawing.Rectangle یک استراکت است نه کلاس. ولی فرقی برای ما فعلا ندارد. از آن یک نمونه ساختیم در پست قبل. saalek110 18 خرداد 1386, 17:10اساس کار همین ها بود که گفتیم. حالا در پستهای بعدی فقط با اشیای ساخته شده بازی می کنیم. شی ئی از کلاس Brush می سازیم. یا از Point نمونه می سازیم. یا متنی را چاپ می کنیم. Brush bb = Brushes.Black; Point pp1 = new System.Drawing.Point(320, 20); my_graph.DrawString("hello", this.Font, bb, 240, 40); فرق قلم و براش را یاد می گیریم. یاد می گیریم چطور عکسها را نمایش دهیم. ( البته نه داخل پیکچر باکس بلکه مثل همین کارهای قبلی با کلاسهای System.Drawing . ) کد زیر: // ----------------------------------------------------------------ax1 Bitmap myBitmap = new Bitmap(@".55.bmp"); //Graphics g = Graphics.FromImage(myBitmap); my_graph.DrawImage(myBitmap, 10, 90); // ------------------------------------------------------------------ax2 Image image = Image.FromFile(@".33.jpg"); my_graph.DrawImage(image, 110, 90); یا صفات اشیای خود را تغییر می دهیم: Pen my_pen = new Pen(Color.Chocolate); my_pen.Width = 1; my_pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; یا چرخش را کار می کنیم: my_graph.RotateTransform(-12); saalek110 18 خرداد 1386, 17:48در این پست به دکمه ای وظیفه پاک کردن فرم را می دهیم. کدی هم برای رسم یک مربع می گذاریم برای تست. این بار برخلاف گذشته کل کد فرم را پست می زنم. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace g1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { System.Drawing.Graphics my_graph = this.CreateGraphics(); // khalghe sheie my_graph.Clear(System.Drawing.SystemColors.Control ); // clear form my_graph.Dispose(); } private void button1_Click(object sender, EventArgs e) { System.Drawing.Graphics my_graph = this.CreateGraphics(); Rectangle my_rec1 = new Rectangle(40, 20, 40, 40); // khalghe rec1 my_graph.DrawRectangle(System.Drawing.Pens.Red, my_rec1); // rasme rec1 my_graph.Dispose(); } } } saalek110 18 خرداد 1386, 18:11برنامه زیر برای نوشتن کلمه ای بر روی فرم است که ابتدا یک براش ساخته ایم و بعد از متد DrawString استفاده کرده ایم. System.Drawing.Graphics my_graph = this.CreateGraphics(); Brush my_Brush = Brushes.Black; my_graph.DrawString("hello", this.Font, my_Brush, 100, 80); my_graph.Dispose(); البته کمی در ساخت براش و فونت صرفه جویی شده در کد بالا. این دو خود کلاسهای با شخصیتی هستند. ما در اینجا از فونت خود فرم استفاده کرده ایم و براش هم همان طور که می بینید. saalek110 18 خرداد 1386, 18:22برنامه این پست رسم خط است. System.Drawing.Graphics my_graph = this.CreateGraphics(); Point my_point_one = new System.Drawing.Point(80, 20); Point my_point_two = new System.Drawing.Point(200, 150); my_graph.DrawLine(System.Drawing.Pens.Red, my_point_one, my_point_two); my_graph.Dispose(); دو نقطه ابتدا ساخته ایم و بعد با استفاده از متد DrawLine آن را رسم کرده ایم. باز در ساخت قلم صرفه جویی شده. دقت کنید که line را با قلم کشیدیم نه براش. و در پست قبل نوشته خود را با براش نوشتیم. saalek110 18 خرداد 1386, 18:31 شرحی راجع به برنامه پست قبل: با فلش ها نشان داده شده که کدهای پست قبل بر چه اساسی تنظیم شده. باز هم نقطه استراکت است نه کلاس. و سعی کنید بدون ساخت point از روشهای دیگر این متد که در عکس بالا مشخص است خط را بکشید. یعنی این طوری: System.Drawing.Graphics my_graph = this.CreateGraphics(); //Point my_point_one = new System.Drawing.Point(80, 20); //Point my_point_two = new System.Drawing.Point(200, 150); my_graph.DrawLine(System.Drawing.Pens.Red , 80, 20 ,200, 150); my_graph.Dispose(); saalek110 18 خرداد 1386, 19:00رسم دایره: System.Drawing.Graphics my_graph = this.CreateGraphics(); Rectangle my_rec = new Rectangle(100, 20, 80, 80); // khalghe rec my_graph.DrawEllipse(System.Drawing.Pens.Blue, my_rec); // rasme dayereh my_graph.Dispose(); توجه کنید که دایره ما داخل یک مستطیل کشیده می شود. و می تواند یک بیضی باشد: System.Drawing.Graphics my_graph = this.CreateGraphics(); Rectangle my_rec = new Rectangle(60, 20, 160, 80); // khalghe rec my_graph.DrawEllipse(System.Drawing.Pens.Blue, my_rec); // rasme Ellipse my_graph.Dispose(); saalek110 18 خرداد 1386, 19:16پر کردن داخل Rectangle : System.Drawing.Graphics my_graph = this.CreateGraphics(); Rectangle my_rec = new Rectangle(80, 20, 120, 120); // khalghe rec Brush my_brush = Brushes.Red; my_graph.DrawRectangle(System.Drawing.Pens.Black, my_rec); // rasme rec my_graph.FillRectangle(my_brush, my_rec); // fille rec my_graph.Dispose(); می بینید که پر کردن هم با براش است. قبلا هم با براش یک hello نوشتیم. ولی رسم خط و دایره و ... با قلم بود. و در زیر باز الگوهای دیگر این متد را می بینیم. پس بدون رسم مستطیل هم می شد جایی را پر کرد: System.Drawing.Graphics my_graph = this.CreateGraphics(); //Rectangle my_rec = new Rectangle(80, 20, 120, 120); // khalghe rec Brush my_brush = Brushes.Blue; //my_graph.DrawRectangle(System.Drawing.Pens.Red, my_rec); // rasme rec my_graph.FillRectangle(my_brush, 80,20,120,120); // fille rec my_graph.Dispose(); saalek110 18 خرداد 1386, 20:12نمایش عکس(بدون پیکچر باکس): System.Drawing.Graphics my_graph = this.CreateGraphics(); Bitmap my_Bitmap = new Bitmap(@".ice.bmp"); my_graph.DrawImage(my_Bitmap, 80, 15); my_graph.Dispose(); عکس زیر : را در مسیر : F:your_projectinDebugice.bmp قرار دهید. =============== طرح زیر : Image my_image = Image.FromFile(@".ice.jpg"); my_graph.DrawImage(my_image, 110, 90); هم وجود دارد که من فرقهایش را نمی دانم و به خودتان واگذار می کنم تا سریعتر برویم مباحث بعدی. ================ برنامه زیر هم نیاز به عکس مورد نظر دارد که باید کنار فایل اگزه در پوشه bin-debug باشد. یا ریلیز اگر تنظیمات کامپایلر شما چنین باشد. private void button1_Click(object sender, EventArgs e) { System.Drawing.Graphics my_graph = this.CreateGraphics(); FontFamily my_FontFamily = new FontFamily("tahoma"); Font my_Font = new Font(my_FontFamily, 150, FontStyle.Bold); //Image my_image = Image.FromFile(@".ice.jpg"); Bitmap my_Bitmap = new Bitmap(@".ice.bmp"); System.Drawing.TextureBrush my_TextureBrush = new TextureBrush(my_Bitmap); my_graph.DrawString("HI", my_Font, my_TextureBrush, 20, 20, StringFormat.GenericDefault); // print hello my_graph.Dispose(); } saalek110 18 خرداد 1386, 20:24System.Drawing.Graphics my_graph = this.CreateGraphics(); Pen my_pen = new Pen(Color.Navy); my_pen.Width = 7; my_pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot; my_graph.DrawEllipse(my_pen, 70, 30, 150, 100); my_graph.Dispose(); در اینجا صفت dash قلم را تنظیم کرده ایم و ضخامت قلم را. saalek110 18 خرداد 1386, 21:26string my_string="hello__abcdefghijklmnopqrstuvwxyz123456789abcdefgh ijklmnopqrstuvwxyz1234"; System.Drawing.Graphics my_graph = this.CreateGraphics(); Brush my_brush = Brushes.Black; Rectangle my_rec = new Rectangle(450, 100, 40, 150); // khalghe rec my_graph.DrawRectangle(System.Drawing.Pens.Blue, my_rec); // rasme rec my_graph.DrawString(my_string, this.Font, my_brush, my_rec); my_graph.RotateTransform(12); my_graph.DrawRectangle(System.Drawing.Pens.Blue, my_rec); // rasme rec my_graph.DrawString(my_string, this.Font, my_brush, my_rec); my_graph.RotateTransform(-12); my_graph.ScaleTransform(1.5f, 1.5f); my_graph.DrawRectangle(System.Drawing.Pens.Blue, my_rec); // rasme rec my_graph.DrawString(my_string, this.Font, my_brush, my_rec); my_graph.RotateTransform(12); my_graph.DrawRectangle(System.Drawing.Pens.Blue, my_rec); // rasme rec my_graph.DrawString(my_string, this.Font, my_brush, my_rec); my_graph.Dispose(); این کد: my_graph.ResetTransform(); هم برای ریست کردن تغییرات انجام شده روی گراف خود. saalek110 25 خرداد 1386, 17:38برنامه زیر در رویداد فرم paint تست شده. و using مورد نیاز: using System.Drawing.Drawing2D; private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; Pen pn = new Pen(Color.Red, 3); HatchBrush htchBrush = new HatchBrush(HatchStyle.Cross, Color.Red, Color.Blue); g.DrawRectangle(pn, 20, 20, 200, 200); g.FillRectangle(htchBrush, 20, 20, 200, 200); } نکته آن استفاده از e است که من قبلا استفاده نکرده بودم. این برنامه از یکسری سورس انتخاب شده. بعد یک قلم و یک براش تعریف شده . با قلم مستطیل رسم شده و با براش پر شده. saalek110 25 خرداد 1386, 17:55در برنامه زیر یک تابع اورراید شده داریم. و using مورد نیاز: using System.Drawing.Drawing2D; تابع را بعد از (سی شارپ 2005 ): public Form1() { InitializeComponent(); } قرار دهید. protected override void OnPaint(PaintEventArgs e) { // Obtain the Graphics object Graphics g = e.Graphics; // Set the composit quality and smooting mode // of the surface g.CompositingQuality = CompositingQuality.HighQuality; g.SmoothingMode = SmoothingMode.AntiAlias; // Create a rectangle from point (20, 20) to (100, 100) Rectangle rect = new Rectangle(20, 20, 100, 100); // Create two Pen objects with Red and Green color Pen redPen = new Pen(Color.Red, 3); Pen blackPen = Pens.Black; // Create a SolidBrush objects SolidBrush greenBrush = new SolidBrush(Color.Green); // Draw shapes and lines g.DrawRectangle(redPen, rect); g.FillEllipse(greenBrush, rect); g.DrawLine(blackPen, 0, 250, this.Width, 250); g.FillEllipse(Brushes.Blue, 70, 220, 30, 30); g.FillEllipse(Brushes.SkyBlue, 100, 210, 40, 40); g.FillEllipse(Brushes.Green, 140, 200, 50, 50); g.FillEllipse(Brushes.Yellow, 190, 190, 60, 60); g.FillEllipse(Brushes.Violet, 250, 180, 70, 70); g.FillEllipse(Brushes.Red, 320, 170, 80, 80); // Dispose objects greenBrush.Dispose(); // blackPen.Dispose(); redPen.Dispose(); g.Dispose(); } بدون این دو خط از برنامه : g.CompositingQuality = CompositingQuality.HighQuality; g.SmoothingMode = SmoothingMode.AntiAlias; کیفیت پایینی خواهیم داشت: saalek110 31 خرداد 1386, 15:17 از : using System.Drawing.Drawing2D; protected override void OnPaint(PaintEventArgs e) { HatchBrush h = new HatchBrush(HatchStyle.BackwardDiagonal, Color.Black, Color.Cyan); Pen P = new Pen(h, 20); e.Graphics.Clear(Color.AliceBlue); e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; e.Graphics.DrawLine(P, 80, 90, 80, 200); e.Graphics.FillEllipse(h, 50, 50, 50, 30); } saalek110 31 خرداد 1386, 15:33از : using System.Drawing.Drawing2D; protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; Font f = new Font(new FontFamily("Times New Roman"), 10); Brush fb = new SolidBrush(Color.Black); Color cb = Color.Red, cf = Color.White; int wi = 30, hi = 25, rectNb = 14; int x, y; HatchBrush hb = null; for (int i = 0; i < 53; i++) { x = (int)(i % rectNb); y = (int)(i / rectNb); hb = new HatchBrush((HatchStyle)i, cf, cb); g.FillRectangle(hb, 2 + x * (5 + wi), 2 + y * (5 + hi), wi, hi); } fb.Dispose(); hb.Dispose(); g.Dispose(); } saalek110 05 تير 1386, 21:19منبع: موضوع : تغییر شکل دادن فرم using System.Drawing.Drawing2D; protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) { GraphicsPath gp = new GraphicsPath(); Graphics gr = this.CreateGraphics(); Region r; RectangleF rf; PointF[] p = new PointF[9]; Font f; p[0] = new PointF(70, 0); p[1] = new PointF(170, 0); p[2] = new PointF(240, 70); p[3] = new PointF(240, 170); p[4] = new PointF(170, 240); p[5] = new PointF(70, 240); p[6] = new PointF(0, 170); p[7] = new PointF(0, 70); p[8] = new PointF(70, 0); gp.AddPolygon(p); PathGradientBrush pgb = new PathGradientBrush(p); Color[] c = new Color[2]; c[0] = Color.Honeydew; c[1] = Color.SeaShell; pgb.CenterColor = Color.Chocolate; pgb.SurroundColors = c; gr.FillPolygon(pgb, p); r = new Region(gp); this.Region = r; gr = this.CreateGraphics(); gr.DrawPolygon(new Pen(Color.White, 5), p); gr.DrawPolygon(new Pen(Color.Black, 3), p); rf = new RectangleF(15, 105, 240, 115); f = new Font(FontFamily.GenericMonospace, 13, FontStyle.Bold); gr.DrawString("Irregular Form Demo", f, new LinearGradientBrush(gr.VisibleClipBounds, Color.Blue, Color.Black, LinearGradientMode.BackwardDiagonal), rf); f.Dispose(); gr.Dispose(); gp.Dispose(); r.Dispose(); } کد بالا را طبق معمول پستهای قبل بعد از: public Form1() { InitializeComponent(); } اضافه کنید. elham821 13 بهمن 1386, 22:54با سلام خدمت دوستان يه برنامه ساعت آنالوگ با #C دارم مي خوام وقتي اجرا مي شه فقط ساعت نمايش داده بشه و پشت اون كه فرم هست ديده نشه، back color فرم رو control گذاشتم ولي باز هم فرم ديده ميشه اگر هم opacity فرم رو 0 كنم اصلا ساعت هم ديده نميشه. كسي مي دونه بايد چي كارش كنم كه فرم ديده نشه؟ naseri 13 بهمن 1386, 23:29سلام ببین این به دردت می خوره ولی C++ هست.یه سر اینجا بزن: elham821 13 بهمن 1386, 23:44خود ساعت رو نوشتم حالا مي خوام وقتي برنامه اجرا مي شه فقط خود ساعت ديده بشه و مستطيل فرم پشتش ديده نشه saalek110 14 بهمن 1386, 01:42صفت TransparencyKey فرم را هم روی Control بگذار. ولی شاید بهتر باشه هر دو ( بک کالر و صفت بالا) را روی رنگی بگذارید که استفاده ای نداشته باشد.(نمی دونم اصلا رنگی هست که استفاده نداشته باشه یا نه) چون با گذاشتن روی Control انگار تایتل بار را هم تحت اثر خود قرار می دهد. ولی فکر کنم شما می خواهید تایتل بار را هم حذف کنید که دیگه مهم نیست. elham821 14 بهمن 1386, 11:12خيلي ممنون اين كار رو كردم درست شد!! saalek110 10 ارديبهشت 1389, 16:16تاپیک مرتبط: Graphics in c# () hosna 12 28 تير 1389, 18:48سلام من يه گراف كشيدم وقتي ميخام ويرايشش كنم قبلي ها پاك ميشن چي كار كنم؟




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 8338]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن