تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 39 +

تعداد کل مطالب : 338 +

تعداد نظرات : 29 +

حضرت علی (ع) : دانش اندک همراه با عمل بهتر از علم بسیار بدون عمل است.

آموزش مقدماتی تا پیشرفته سی شارپ بخش دویست و یازدهم


بنام اول برنامه نویس عالم

آموزش مقدماتی تا پیشرفته سی شارپ بخش دویست و یازدهم

سلام به همه کاربران وب‌سایت لندلرن

قسمت دویست و یازدهم


تغيير اندازه ي تصاوير :

در قسمت قبل اگر عكسي كه براي فرم در نظر مي گرفتيد كوچكتر از اندازه ي فرم بود، و يا اندازه ي فرم را به گونـه اي تغييـر مـي داديد كه بزرگتر از اندازه ي عكس شود متوجه مي شديد كه چندين كپي از عكس انتخابي شما در كنار هم چيده مـي شـود تـا فـرم برنامه پر شود .

همچنين اگر اندازه ي فرم از اندازه ي عكس انتخابي شما كوچكتر باشد، مقداري از عكس در برنامه نمايش داده نمـي شود. بهتر است برنامه را به گونه اي تغيير دهيم كه با تغيير اندازه ي عكس آن را در فرم برنامه نمايش دهد .

در قسمت امتحان كنيـد بعدي، براي اينكه بتوانيم با تغيير اندازه ي عكس آن را به اندازه ي فرم در آورده و نمايش دهيم وظيفه ي نمايش تصوير را از كلاس Control خواهيم گرفت و در خودمان آن را انجام خواهيم داد.

امتحان كنيد: نمايش تصوير در كلاس PaintCanvas

  • قسمت ويرايشگر كد مربوط به كلاس PaintCanvas را باز كنيد .
  • در ايـــن قـــسمت بـــه جـــاي اســـتفاده از متـــد مربـــوط بـــه رويـــداد Paint از متـــد ديگـــري بـــه نـــام OnPaintBackground استفاده مي كنيم كه قبل از فراخواني رويداد Paint فراخـواني مـي شـود .
  • كـد مشخص شده در زير را به كلاس PaintCanvas اضافه كنيد:
  • حال به قسمت طراحي فرم كنترل PaintCanvas برگشته و روي قسمتي از اين كنترل كليك كنيـد تـا انتخـاب شود.
  • سپس با استفاده از قسمت Events در پنجره ي Properties رويداد Resize را انتخاب كـرده و روي آن دو بار كليك كنيد تا متد مربوط به اين رويداد ايجاد شود.
  • كد مشخص شده در زير را در اين رويداد وارد كنيد:
  • حال برنامه را اجرا كرده و عكسي را كه به اندازه ي فرم نباشد را براي نمايش به عنوان پس زمينه انتخاب كنيد.
  • مـشاهده خواهيد كرد كه اندازه ي تصوير تغيير مي كند تا به اندازه ي فرم در آيد.

چگونه كار مي كند؟

همانطور كه در قسمتهاي قبلي نيز گفتم هر ترسيم از دو مرحله تشكيل شده است .

در مرحله ي اول سطح كنترل پاك مـي شـود، در اين قسمت رويداد PaintBackground فراخواني مي شود .

در مرحله ي دوم نيز به كنترل فرصت داده مي شود تا خود را ترسيم كند، در اين مرحله نيز رويداد Paint فراخواني ميشود .

به عبارت ديگر بـراي هـر ترسـيم وينـدوز بـا فراخـواني رويـداد PaintBackground پس زمينه ي صفحه را رسم مي كند، سپس با فراخواني رويداد Paint در كنتـرل، بـه كنتـرل اجازه مي دهد تا خود را روي پس زمينه ي ايجاد شده رسم كند.

در متد OnPaintBackground ابتدا بايد فرم تا پاك كنيم در غير اين صورت ممكن است تصاوير درسـت نمـايش داده نشوند.

براي اين كار يك قلم موي جديد از كلاس SolidBrush به رنگ پس زمينه ي كنترل ايجاد كرده و با استفاده از آن يك مستطيل توپر به اندازه و رنگ قسمتي از فرم كه از نوع نا معتبر مشخص شـده اسـت (ClipRectangle) رسـم مـي كنيم.

بعد از اين كار بايد تصوير مورد نظر را در پس زمينه ي فرم رسـم كنـيم.

بـراي رسـم يـك تـصوير مـي تـوانيم بـه سـادگي از متـد DrawImage در كلاس Graphics استفاده كنيم.

اما در اينجا قبل از اينكه تصوير را رسم كنيم بايد محـدوده ي رسـم آن را نيز مشخص كنيم.

براي اين كار هنگام فراخواني متـد DrawImage بـراي رسـم تـصوير، محـدوده ي آن (شـيئ اي از كلاس Rectangle ) و نيز خود تصوير را به اين متد مي فرستيم و سپس تصوير را رسم مي كنيم :

متد هاي ديگر كلاس Graphics:

در اين قسمت های دوره سعي كرديم كه با بعضي از ويژگيهاي گرافيكي كه در NET. وجود دارند آشنا شويم و مهمترين آنها را بررسي كنـيم.

در طول دوره همچنين با يكي از مهمتـرين كـلاس هـايي كـه بـراي كارهـاي گرافيكـي در NET. وجـود دارد بـه نـام كـلاس
Graphics نيـز آشـنا شـديم و از بعـضي از متـدهاي پـر كـاربرد آن اسـتفاده كـرديم.

در زيـر تعـدادي از متـدهاي كـلاس Graphics كه استفاده ي زيادي در برنامه ها دارند را به اختصار معرفي مي كنيم.

  • DrawLine بين دو نقطه ي مشخص خطي را رسم مي كند.
  • DrawCurve و DrawClosedCurve يك مجموعه از نقاط را دريافـت كـرده و بـين ايـن نقـاط يـكمنحني رسم مي كند.
  • DrawArc يك كمان (قسمتي از يك دايره) را در صفحه رسم مي كند.
  • DrawPie قسمتي از يك دايره را رسم مي كند (همانند يك نمودار دايره اي).
  • DrawPolygon با استفاده از يك مجموعه نقاط، يك چند ضلعي را در صفحه رسم مي كند.
  • DrawIcon يك آيكون را در صفحه نمايش مي دهد.

تمام اين متد ها اشيايي را از نوع Brush ،Pen ،Rectangle و يا Point كه در طي بخش های قبل با آنها آشنا شـديد را بـه عنوان ورودي دريافت مي كنند.

همچنين اين توابع، توابع متناظري نيز دارند كه با نام Fill شروع مي شوند.

وظيفه ي اين توابع اين است كه اشكال را به صورت توپر رسم كنند.

به پایان بخش گرافیک در سی شارپ رسیدیم

بخش ”  استفاده از بانكهاي اطلاعاتي ” را از قسمت دویست و دوازدهم ببینید.


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ