গত চারটি পর্বে অনেক রস-কসহীন আলাপ হয়েছে। তাই এই পর্বে রঙিন আলাপ করতে চাই। WPF আসলে সত্যিকারের গ্রাফিকাল প্রোগ্রামিং, যেখানে কালারের এত সুন্দর কাজ আগে কোন ল্যাংগুয়েজ দ্বারা করা সম্ভব ছিল না। রঙের কাজ করার জন্য কয়েকটা বিষয় আমাদের বুঝতেই হবে।
- Pen: Pen দ্বারা আসলে একটা লাইন বা কোন বর্ডারের কালারকে বুঝনো হয়। Pen কে আমরা আমাদের লেখার কলমের সাথে তুলনা করতে পারি। যেটা দিয়ে চিকন দাগ দেয়া যায়। Stroke প্রপার্টি দিয়ে Pen এর কাজ করা হয়ে থাকে। কোডে দেখি কিভাবে Stroke দিয়ে পেনের কাজ করা হয়
এর আউটপুট নিচের মত

ব্যাখ্যাঃ
- ViewBox কোয়ালিটি ঠিক রেখে তার ভিতরের কন্ট্রোলকে সম্পূর্ণ যায়গা ব্যাবহার করতে দেয়, যেন সব কিছু সমহারে বড় হতে পারে।
- Line ট্যাগের মাধ্যমে লাইন টানা যায়। X1 ও Y1 দিয়ে লাইনের শুরু এবং X2 ও Y2 লাইনের শেষ নির্ধারন করা হয়।
- Stroke দিয়ে Pen এর রঙ ঠিক করা হয়
- StrokeDashArray বুঝায় কত পরপর ডেশ দেয়া হবে
- StrokeDashCap মানে হচ্ছে ডেশের মাথা কেমন হবে
<Ellipse Height="100" Width="100" Stroke="Red" StrokeDashArray="2" StrokeDashCap="Square" StrokeThickness="5" />
আউটপুট নিচের মতঃ

আশা করি স্ট্রোকের কাজ বুঝতে সক্ষম হয়েছেন।
Brush: Brush দ্বারা কোন এরিয়ার কালার কি হবে তা বুঝানো হয়। আমরা একে অনেকটা রঙের ব্রাশ দিয়ে কোন জায়গা রঙ করার মত চিন্তা করতে পারি। ব্রাশের কাজ Fill দিয়ে করা হয়। নিচের কোড দেখুন
<Ellipse Height="100" Width="200" Stroke="Blue" StrokeThickness="5"> <Ellipse.Fill> <SolidColorBrush Color="Cyan" /> </Ellipse.Fill> </Ellipse>
আউটপুট নিচের মতঃ

ব্যাখ্যাঃ
- Ellipse.Fill দ্বারা সম্পুর্ণ জায়গা করা হবে তা বুঝানো হয়েছে।
- SolidColorBrush দ্বারা কালার ঠিক করা হয়েছে।
lineargradientBrush: lineargradientBrush এর মাধ্যমে একাধিক কালারের মিশ্রণ পাওয়া সম্ভব। নিচে কোড দেখি এবং বুঝতে চেস্টা করি
<Rectangle Width="200" Height="150" Stroke="Black" StrokeThickness="5"> <Rectangle.Fill> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <GradientStop Color="Yellow" Offset="0" /> <GradientStop Color="Green" Offset=".7" /> </LinearGradientBrush> </Rectangle.Fill> </Rectangle>
আউটপুট নিচের মত হবেঃ

ব্যাখ্যাঃ
- Rectangle এর মাধ্যমে একটা চতুর্ভুজ নেয়া হয়েছে
- Rectangle.Fill এর মাধ্যমে চতুর্ভুজকে রঙ করা হবে তা বুঝানো হয়েছে। LinearGradientBrush দ্বারা রঙ কোথা থেকে শুরু হবে এবং কোথায় শেষ হবে তা বুঝায় StartPoint এবং EndPoin দ্বারা। এখানে x এবং y অক্ষের শুরু হয় উপরে বাম কর্নার থেকে, অর্থাৎ উপরের বাম কর্নারে x=0, y=0 এবং নিচে ডান কর্নারে x=1, y=1
- GradientStop এর দ্বরা বুঝানো হয় ঠিক কোথায় কালারের ঘনত্ব বেশি হবে। মানে গ্রাডিয়েন্ট শেষ হবে।
<Ellipse.Fill>
<RadialGradientBrush GradientOrigin=".5,.5">
<GradientStop Color="Red" Offset="0" />
<GradientStop Color="Black" Offset="1" />
</RadialGradientBrush>
</Ellipse.Fill>
</Ellipse>
আউটপুট দেখুনঃ

ব্যাখ্যাঃ আগের মতই। আরো বিস্তারিত জানতে মাইক্রোসফটের সাহায্য দেখে নিন।
সাহায্য-১
সাহায্য-২
এই পর্ব এখানেই শেষ। অন্য সব পর্বের মত আবারো বলি, এখান থেকে আপনি WPF সম্পর্কে ধারনা পাবেন, কিন্তু এক্সপার্ট হতে হলে বই, ইন্টারনেটে ঘাটা-ঘাটি করতে পরামর্শ ধন্যবাদ সহকারে গৃহীত হবে। হ্যাপি লারনিং ;-)
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন