Naser54
یک شنبه 05 مهر 1383, 12:00 عصر
مدتها بود که میخواستم یه ساعت آنالوگ قشنگ با دات نت بنویسم. اول یه سورس گرفتم که این کار رو کرده بود ولی "قشنگ" نبود. اونو دستکاری کردم و بعداً کامل روش رسم رو عوض کردم و محصول نهایی شد این:
http://img.villagephotos.com/p/2004-9/837482/AnalogClock.JPG
کل Solution رو هم به صورت زیپ شده گذاشتم. اگه کد رو نگاه کنید، میبینید که خیلی کار ریاضی برده. تمام ویژگیها رو هم به صورت Property گذاشتم. از مهمترین بخشهای کد، سه خط زیر هستند که از چشمک زدن تصویر جلوگیری میکنند.
Me.SetStyle(ControlStyles.UserPaint, True)
Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
Me.SetStyle(ControlStyles.DoubleBuffer, True)
این سه خط باعث میشوند که برای هربار رسم به جای پاک کردن محتویات قبلی و رسم محتویات جدید ( که باعث چشمک "Flicker" میشود) ، این محتویات روی تصویر قبلی رسم شوند.
تمام مشخصات از قبیل رنگ عقربهها، رنگ زمینه، رنگ اعداد و... نیز قابل تغییر هستند.
موفق باشید
http://img.villagephotos.com/p/2004-9/837482/AnalogClock.JPG
کل Solution رو هم به صورت زیپ شده گذاشتم. اگه کد رو نگاه کنید، میبینید که خیلی کار ریاضی برده. تمام ویژگیها رو هم به صورت Property گذاشتم. از مهمترین بخشهای کد، سه خط زیر هستند که از چشمک زدن تصویر جلوگیری میکنند.
Me.SetStyle(ControlStyles.UserPaint, True)
Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
Me.SetStyle(ControlStyles.DoubleBuffer, True)
این سه خط باعث میشوند که برای هربار رسم به جای پاک کردن محتویات قبلی و رسم محتویات جدید ( که باعث چشمک "Flicker" میشود) ، این محتویات روی تصویر قبلی رسم شوند.
تمام مشخصات از قبیل رنگ عقربهها، رنگ زمینه، رنگ اعداد و... نیز قابل تغییر هستند.
موفق باشید