PDA

View Full Version : کلاس brush



shr6557
جمعه 03 مهر 1388, 17:02 عصر
با سلام
همون طوری که می دونید کلاس brush در مواقع پر کردن یک مساحت یا کشید یک string استفاده می شده در مقابل کلاس pen که برای رسم خط هست.
مشکلی که من با کلاس brush دارم فکر کنم به معماری دات نت بر میگرده!
من متوجه نمی شم
مگه کلاس brush یک abstract کلاس نیست؟ پس نمیشه که از اون instance گرفت.
پس چطوری که امکان داره که کلاس brushes به ما instance کلاس براش رو برگردونه!!؟
مثلا
Brushes.Blue
یک کلاس brush رو به ما بر می گردونه!
من دو تا مشکل دیگه هم دارم!
1- اگر بخوام یک brush با یک رنگ مخصوص داشته باشم نه رنگ که ای که در property های brushes امده ! چه کار باید بکنم
2- class brush هیچ variable تو خودش نداره چطوری می تونه رنگ موردنظر رو تو خودش نگه داره؟ آخه یک سری متد بیش نیست!؟


با تشکر
ببخشید طولانی شد

shr6557
جمعه 03 مهر 1388, 20:49 عصر
کسی جواب نمی ده؟!!

Parham.D
شنبه 04 مهر 1388, 09:23 صبح
از کلاس Brush باید به صورت جایگزینی استفاده بشه. برای نمونه پنج کلاس هستند که از کلاس System.Drawing.Brush ارث بری دارند: HatchBrush, LinearGradientBrush, SolideBrush, TextureBrush. شما نباید هیچگاه شیئی را که از کلاس پایه Brush نمونه سازی شده، به عنوان پارامتر به آن ارسال کنید. در عوض یک شی از یکی از کلاسهای مشتق شده از کلاس پایه را به عنوان جایگزین با آن ارسال کنید. از آنجایی که همه آنها از کلاس Brush مشتق شده‏اند، مثلا متد Graphic.Drawing.Rectangle میتواند همه آنها را قبول کند. اگز شما یک کلاس سفارشی را از System.Drawing.Brush مشتق نمایید، میتوانید آن را به عنوان یک پارامتر به مثلا متد Rectangle ارسال کنید.




Brush b = new SolideBrush (Color.Blue)
Brush b = New SolideBrush (Color.FromArgb (10, ,200, 200)