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

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

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

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

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

حضرت محمد (ص) : داناترین مردم کسى است که دانش دیگران را به دانش خود بیفزاید.

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


 به نام خداوند جان آفرین حکیم سخن در زبان آفرین



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

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

قسمت صد و نود و نهم


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

كلاس PaintEventArgs حاوي خاصيتي به نام ClipRectangle است كـه اطلاعـات يـك مـستطيل را در خود نگهداري مي كند.

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

كلاس Rectangle نيز داراي متـدي بـه نـام IntersectsWith است كه يك مقدار بولين را برمي گرداند و اين مقدار مشخص مي كند كه آيا دو مستطيل همپوشاني دارند يا نـه (رو هـم قـرار مـي گيرند يا نه ؟)

به اين ترتيب مي توانيم در اين حلقه، مستطيل مشخص كننده ي محدوده ي تـك تـك عناصـر موجـود در ليـست را بـا مـستطيل مشخص كننده ي محدوده ي عنصر كنوني كه بايد رسم شود، مقايسه كرده و ببينيم كه همپوشاني دارند يا نه.

در صورتي كه اين دو مستطيل همپوشاني داشته باشد لازم است كه آن را در فرم رسم كنيم و در غير اين صورت مي تـوانيم نقطـه ي بعـدي در ليـست را بررسي كنيم.
دو تكنيكي كه براي بهبود برنامه در اين قسمت استفاده كرديم (رسم ناحيه اي كه لازم است ترسيم شود به جاي رسـم تمـام فـرم و نيز رسم نقطه اي كه جديداً ايجاد شده است به جاي رسم تمام نقاط ) دو نكته ي بـسيار مهـم در نوشـتن يـك برنامـه ي گرافيكـي محسوب مي شوند وبا حذف هر يك از آنها از برنامه، نمي توانيد به راحتي شكلي را در فرم برنامه ايجاد كنيد .

انتخاب رنگ :

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

مانند تمام برنامه هاي گرافيكي يك پالت رنگ ايجاد خواهيم كرد و به وسيله ي آن پالـت، در هر لحظه به كاربر اجازه مي دهيم دو رنگ را انتخاب كند :

يك رنگ براي كليك چپ ماوس و رنـگ ديگـر بـراي كليـك راسـت ماوس.
براي ايجاد اين كنترل روشهاي زيادي و جود دارند، اما منطقي ترين و ساده ترين روش اين است كه كنترلـي حـاوي چنـدين كنتـرل شبيه Button ايجاد كنيم.

سپس رنگ پس زمينه ي هر يك از اين كنترل ها را برابر با يكي از رنگهاي مورد نظر در پالت رنگ قرار دهيم .

به اين ترتيب كاربر مي تواند با كليك روي هر كدام از اين كنترل ها يك رنگ را انتخاب كرده و از آن براي رسـم شـكل استفاده كند.

در ادامه  نحوه ي ايجاد چنين كنترلي را از پايه بررسي خواهيم كرد.

ايجاد كنترل ColorPalette:

براي اينكه بتوانيم يك كنترل براي پالت رنگ در برنامه بسازيم، بايد دو كـلاس ايجـاد كنـيم.

  • كـلاس اول، كلا سـي اسـت بـه نـام ColorPalette كه از كلاس UserControl مشتق مي شود . اين كلاس براي ترسيم رابط گرافيكي كنترل پالت رنگ مورد استفاده قرار مي گيرد .
  • كلاس دوم نيز كلاسي بـه نـام ColorPaletteButton اسـت كـه بـراي نمـايش رنگهاي موجود در پالت به كار مي رود.در ايجاد پالت رنگ، ظاهر و مكان قرارگيري دكمه هايي كه براي انتخاب رنگ در صفحه به كار مي روند را بايد خودمـان مـشخص كنيم و همچنين بايد اين ظاهر را هنگام تغيير اندازه ي كنترل نيز حفظ كنيم.
    بنابراين متدي ايجاد مي كنيم تا هنگام رخ دادن رويداد Resize فراخواني شود و مكان قرارگيري رنگها در كنترل پالت رنگ را تنظيم كند.

هنگامي كه رويداد Resize فراخواني شد، بايد مكان قرارگيري هر رنگ را در پالت مشخص كنيد.

براي اين كـار از بـالا سـمت چپ كنترل شروع مي كنيد و يكي يكي رنگها را در پالت قرار مي دهيد.

سپس هنگامي كه به انتهاي يك سطر رسيديد، به سطر بعـد رفته و رنگها را در سطر جديد قرار مي دهيد.

امتحان كنيد: ايجاد كنترل ColorPalette

  • بــــــا اســــــتفاده از پنجــــــره ي Solution Explorer كــــــلاس جديــــــدي بــــــه نــــــام ColorPaletteButton.cs به برنامه اضافه كرده
  • و سپس با اضافه كردن كد زير به اين كلاس، فضاي نام System.Drawing را به برنامه اضافه كنيد:
  • سپس كد مشخص شده در زير را در اين كلاس وارد كنيد:
ادامه کد نویسی این برنامه را در قسمت دویستم مشاهده کنید.


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

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

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

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

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

soroush کانال سروش

کانال آی گپ