XAML (Extensible Application Markup Language) ব্যবহার করে বিভিন্ন UI কন্ট্রোলস তৈরি করা হয়। এই কন্ট্রোলগুলো হলো গ্রাফিক্যাল উপাদান যা ব্যবহারকারীর সাথে ইন্টারঅ্যাকশন করতে সাহায্য করে। XAML এর বেসিক কন্ট্রোলস সাধারণত কন্ট্রোলস যেমন Button, TextBox, Label, CheckBox, ComboBox, RadioButton, ListBox ইত্যাদি অন্তর্ভুক্ত করে।
নিচে XAML এর কিছু গুরুত্বপূর্ণ বেসিক কন্ট্রোলস এবং তাদের ব্যবহার দেখানো হলো।
১. Button (বাটন)
বাটন হলো একটি কন্ট্রোল যা ব্যবহারকারী ক্লিক করতে পারে। সাধারণত এটি কোনো কাজ বা ইভেন্ট ট্রিগার করতে ব্যবহৃত হয়।
উদাহরণ:
<Button Content="Click Me" Width="100" Height="50" Click="Button_Click"/>
এখানে:
Contentঅ্যাট্রিবিউট বাটনের টেক্সট সেট করে।Clickইভেন্টটি বাটনে ক্লিক হলে কোড-বিহাইন্ড ফাইলের একটি মেথড কল করবে।
২. TextBox (টেক্সটবক্স)
টেক্সটবক্স একটি ইনপুট কন্ট্রোল, যা ব্যবহারকারীর থেকে টেক্সট ইনপুট গ্রহণ করতে ব্যবহৃত হয়। এটি সাধারণত ফর্ম বা ডাটা ইনপুটের জন্য ব্যবহৃত হয়।
উদাহরণ:
<TextBox Width="200" Height="30" Name="myTextBox" Text="Enter text here"/>
এখানে:
Textঅ্যাট্রিবিউট টেক্সটবক্সের প্রাথমিক টেক্সট সেট করে।Nameঅ্যাট্রিবিউট এর মাধ্যমে কোড-বিহাইন্ডে টেক্সটবক্সের রেফারেন্স করা যায়।
৩. Label (লেবেল)
লেবেল হলো একটি কন্ট্রোল যা শুধুমাত্র টেক্সট প্রদর্শন করতে ব্যবহৃত হয়, সাধারণত এটি অন্য UI কন্ট্রোলের জন্য ট্যাগ বা নির্দেশক হিসেবে কাজ করে।
উদাহরণ:
<Label Content="Enter your name:" Width="200" Height="30"/>
এখানে:
Contentঅ্যাট্রিবিউট লেবেলটির টেক্সট নির্ধারণ করে।
৪. CheckBox (চেকবক্স)
চেকবক্স হলো একটি কন্ট্রোল যা ব্যবহারকারীকে একটি অপশন নির্বাচন বা অদৃশ্য করার সুযোগ দেয়। এটি সাধারণত Boolean মান (যেমন, সত্য বা মিথ্যা) রেকর্ড করার জন্য ব্যবহৃত হয়।
উদাহরণ:
<CheckBox Content="Accept terms and conditions" Width="200" Height="30"/>
এখানে:
Contentঅ্যাট্রিবিউট চেকবক্সের টেক্সট প্রদর্শন করে।
৫. RadioButton (রেডিও বাটন)
রেডিও বাটন একই গ্রুপের মধ্যে একাধিক বিকল্পের মধ্যে একটি নির্বাচন করতে ব্যবহৃত হয়। যখন একটি রেডিও বাটন নির্বাচন করা হয়, তখন একই গ্রুপের অন্যান্য রেডিও বাটনগুলি স্বয়ংক্রিয়ভাবে অদৃশ্য হয়ে যায়।
উদাহরণ:
<RadioButton Content="Option 1" GroupName="Options" Width="200" Height="30"/>
<RadioButton Content="Option 2" GroupName="Options" Width="200" Height="30"/>
এখানে:
GroupNameঅ্যাট্রিবিউট একই গ্রুপে রেডিও বাটনগুলোর সম্পর্ক স্থাপন করে।
৬. ComboBox (কম্বো বক্স)
কম্বো বক্স একটি ড্রপডাউন কন্ট্রোল, যা ব্যবহারকারীর একটি নির্বাচিত অপশন থেকে একটি বেছে নিতে দেয়। এটি সাধারণত অনেক অপশন থেকে একটি নির্বাচন করতে ব্যবহৃত হয়।
উদাহরণ:
<ComboBox Width="200" Height="30">
<ComboBoxItem Content="Option 1"/>
<ComboBoxItem Content="Option 2"/>
<ComboBoxItem Content="Option 3"/>
</ComboBox>
এখানে:
ComboBoxItemএর মাধ্যমে কম্বো বক্সের অপশনগুলি ডিফাইন করা হয়।
৭. ListBox (লিস্টবক্স)
লিস্টবক্স হলো একটি কন্ট্রোল যা একাধিক অপশন বা আইটেম প্রদর্শন করে, এবং ব্যবহারকারী একটি বা একাধিক আইটেম নির্বাচন করতে পারে।
উদাহরণ:
<ListBox Width="200" Height="100">
<ListBoxItem Content="Item 1"/>
<ListBoxItem Content="Item 2"/>
<ListBoxItem Content="Item 3"/>
</ListBox>
এখানে:
ListBoxItemএর মাধ্যমে লিস্টবক্সের আইটেমগুলি ডিফাইন করা হয়।
৮. Image (ইমেজ)
ইমেজ কন্ট্রোল একটি গ্রাফিকাল উপাদান যা একটি ছবি প্রদর্শন করতে ব্যবহৃত হয়। এটি ইমেজ ফাইল যেমন PNG, JPG ইত্যাদি প্রদর্শন করতে পারে।
উদাহরণ:
<Image Source="image.jpg" Width="200" Height="150"/>
এখানে:
Sourceঅ্যাট্রিবিউট ইমেজের ফাইল পাথ নির্ধারণ করে।
৯. Slider (স্লাইডার)
স্লাইডার একটি কন্ট্রোল যা ব্যবহারকারীকে একটি নির্দিষ্ট রেঞ্জের মধ্যে মান সিলেক্ট করতে দেয়। এটি সাধারণত ভলিউম কন্ট্রোল, ব্রাইটনেস কন্ট্রোল ইত্যাদির জন্য ব্যবহৃত হয়।
উদাহরণ:
<Slider Minimum="0" Maximum="100" Width="200"/>
এখানে:
MinimumএবংMaximumঅ্যাট্রিবিউট স্লাইডারের মানের পরিসীমা নির্ধারণ করে।
১০. ProgressBar (প্রোগ্রেস বার)
প্রোগ্রেস বার একটি কন্ট্রোল যা কোন প্রসেসের অগ্রগতি বা স্টেট প্রদর্শন করে।
উদাহরণ:
<ProgressBar Value="50" Minimum="0" Maximum="100" Width="200"/>
এখানে:
Valueঅ্যাট্রিবিউট প্রোগ্রেস বারের বর্তমান মান নির্ধারণ করে।
সারাংশ
XAML এর বেসিক কন্ট্রোলস UI ডিজাইন এবং ব্যবহারকারীর ইন্টারঅ্যাকশন পরিচালনার জন্য গুরুত্বপূর্ণ উপাদান। এই কন্ট্রোলগুলি ব্যবহার করে আপনি বিভিন্ন ধরনের ইনপুট, প্রদর্শন এবং ইভেন্ট হ্যান্ডলিং করতে পারেন। XAML এ এই কন্ট্রোলগুলির ব্যবহারে আপনি একটি সহজ, কার্যকর, এবং ইনটুইটিভ ইউজার ইন্টারফেস তৈরি করতে পারবেন।
XAML এ Button, TextBox, CheckBox, এবং ComboBox হল খুবই সাধারণ UI কন্ট্রোল যা একাধিক উইন্ডোজ অ্যাপ্লিকেশনে ব্যবহার করা হয়। এগুলো মূলত ইউজার ইন্টারফেসে ইনপুট গ্রহণ, ইন্টারঅ্যাকশন এবং ডেটা প্রদর্শন করার জন্য ব্যবহৃত হয়। এখানে প্রতিটি কন্ট্রোলের ব্যবহার এবং তাদের সিনট্যাক্স বিস্তারিতভাবে আলোচনা করা হলো।
Button (বাটন)
Button কন্ট্রোল ইউজারকে একটি অ্যাকশন সম্পন্ন করার জন্য ক্লিক করার সুযোগ প্রদান করে। সাধারণত, বাটনের Click ইভেন্ট হ্যান্ডলারের মাধ্যমে কোনো কার্যকলাপ বা ফাংশন কার্যকর করা হয়।
সিনট্যাক্স:
<Button Content="Click Me" Width="100" Height="50" Click="Button_Click"/>
- Content: বাটনের ভেতরের টেক্সট বা কন্টেন্ট।
- Width & Height: বাটনের আকার নির্ধারণ করে।
- Click: বাটনে ক্লিক করার পরে যে মেথড কল হবে তার নাম।
উদাহরণ:
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Main Window" Height="300" Width="400">
<Grid>
<Button Content="Click Me" Width="100" Height="50" Click="Button_Click"/>
</Grid>
</Window>
কোড-বিহাইন্ড (C#):
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Button clicked!");
}
TextBox (টেক্সটবক্স)
TextBox কন্ট্রোল ব্যবহারকারীর ইনপুট গ্রহণ করতে ব্যবহৃত হয়, যেমন টেক্সট বা নম্বর। এটি প্রায়শই ফর্মে ইনপুট ক্ষেত্র হিসেবে ব্যবহৃত হয়।
সিনট্যাক্স:
<TextBox Width="200" Height="30" Text="Enter text here"/>
- Width & Height: টেক্সটবক্সের আকার নির্ধারণ করে।
- Text: টেক্সটবক্সের মধ্যে প্রদর্শিত স্ট্যাটিক টেক্সট।
উদাহরণ:
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Main Window" Height="300" Width="400">
<Grid>
<TextBox Width="200" Height="30" Text="Enter text here"/>
</Grid>
</Window>
কোড-বিহাইন্ড (C#):
private void ShowTextBoxContent(object sender, RoutedEventArgs e)
{
MessageBox.Show(textBox.Text); // textBox is the name of the TextBox element
}
CheckBox (চেকবক্স)
CheckBox কন্ট্রোল ইউজারকে একটি অপশন নির্বাচন বা বাতিল করতে দেয়। এটি সাধারণত ফর্মে একটি বা একাধিক অপশন নির্বাচন করার জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
<CheckBox Content="I agree to the terms and conditions" IsChecked="True"/>
- Content: চেকবক্সের পাশে প্রদর্শিত টেক্সট।
- IsChecked: চেকবক্সটি চেক করা আছে কিনা তা নির্দেশ করে (True বা False)।
উদাহরণ:
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Main Window" Height="300" Width="400">
<Grid>
<CheckBox Content="I agree to the terms and conditions" IsChecked="True"/>
</Grid>
</Window>
কোড-বিহাইন্ড (C#):
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
if (checkBox.IsChecked == true)
{
MessageBox.Show("Checked");
}
else
{
MessageBox.Show("Unchecked");
}
}
ComboBox (কম্বো বক্স)
ComboBox কন্ট্রোল ব্যবহারকারীকে একটি ড্রপডাউন তালিকা থেকে একটি অপশন নির্বাচন করতে দেয়। এটি সাধারণত নির্বাচনের জন্য ব্যবহার করা হয় যেখানে ব্যবহারকারী একাধিক অপশন থেকে একটি বেছে নিতে পারে।
সিনট্যাক্স:
<ComboBox Width="200" Height="30">
<ComboBoxItem Content="Option 1"/>
<ComboBoxItem Content="Option 2"/>
<ComboBoxItem Content="Option 3"/>
</ComboBox>
- ComboBoxItem: প্রতিটি আইটেমের কন্টেন্ট যা ড্রপডাউন তালিকায় দেখাবে।
- Width & Height: কম্বো বক্সের আকার নির্ধারণ করে।
উদাহরণ:
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Main Window" Height="300" Width="400">
<Grid>
<ComboBox Width="200" Height="30">
<ComboBoxItem Content="Option 1"/>
<ComboBoxItem Content="Option 2"/>
<ComboBoxItem Content="Option 3"/>
</ComboBox>
</Grid>
</Window>
কোড-বিহাইন্ড (C#):
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ComboBox comboBox = sender as ComboBox;
string selectedItem = (comboBox.SelectedItem as ComboBoxItem).Content.ToString();
MessageBox.Show("Selected item: " + selectedItem);
}
সারাংশ
- Button: ব্যবহারকারীর ক্লিক করার মাধ্যমে কোনো অ্যাকশন সম্পন্ন করার জন্য ব্যবহৃত হয়।
- TextBox: ব্যবহারকারী থেকে ইনপুট গ্রহণ করতে ব্যবহৃত হয়, যেমন টেক্সট বা নাম্বার।
- CheckBox: ব্যবহারকারীকে একটি বা একাধিক অপশন চেক করতে দেয়।
- ComboBox: ব্যবহারকারীকে একটি ড্রপডাউন তালিকা থেকে একটি অপশন নির্বাচন করতে দেয়।
এই UI কন্ট্রোলগুলো XAML এর মাধ্যমে তৈরি করা হয় এবং C# কোড-বিহাইন্ডের সাথে যুক্ত হয়ে ইভেন্ট হ্যান্ডলিং এবং ডেটা ম্যানিপুলেশন করার জন্য ব্যবহৃত হয়।
XAML (Extensible Application Markup Language) ব্যবহার করে UI (User Interface) উপাদানগুলোর সাথে ইন্টারঅ্যাকশন তৈরি করার জন্য Control Events এবং Event Handling অত্যন্ত গুরুত্বপূর্ণ। XAML এ বিভিন্ন UI কন্ট্রোলের জন্য ইভেন্টগুলি নির্ধারণ করা হয়, এবং C# বা VB.NET কোড-বিহাইন্ড ফাইলে এই ইভেন্টগুলো হ্যান্ডেল করা হয়।
Control Events কী?
Control Events হলো UI উপাদানগুলির সাথে ঘটানো বিভিন্ন ব্যবহারকারী ক্রিয়া বা সিস্টেম ক্রিয়া যা ট্যাক করা যেতে পারে। যেমন, বাটন ক্লিক, টেক্সটবক্সে টেক্সট ইনপুট করা, উইন্ডো রিসাইজ করা ইত্যাদি। এই ইভেন্টগুলোর মাধ্যমে ইউজার অ্যাকশনের প্রতিক্রিয়া তৈরি করা যায়।
কিছু সাধারণ Control Events:
- Click: একটি বাটনে ক্লিক করা হলে ইভেন্ট ঘটবে।
- Loaded: UI উপাদানটি সম্পূর্ণরূপে লোড হলে ইভেন্ট ঘটে।
- TextChanged:
TextBoxবাTextBlockএর টেক্সট পরিবর্তন হলে। - MouseEnter, MouseLeave: মাউস কিউব উপাদানের মধ্যে প্রবেশ বা বের হওয়া হলে।
- KeyDown, KeyUp: কীবোর্ডে কোনো কিপ্রেস ঘটলে।
XAML এ Control Events কীভাবে ডিফাইন করা হয়?
XAML ফাইলে প্রতিটি কন্ট্রোলের ইভেন্ট নামের সাথে কোড-বিহাইন্ড ফাইলের মেথড বা ফাংশন যুক্ত করা হয়। সাধারণত, EventName="EventHandler" এর মাধ্যমে ইভেন্ট ডিফাইন করা হয়, যেখানে EventName হল ইভেন্টের নাম এবং EventHandler হল সেই ইভেন্টটি হ্যান্ডল করার জন্য ব্যবহৃত মেথড বা ফাংশনের নাম।
উদাহরণ:
<Button Content="Click Me" Width="100" Height="50" Click="Button_Click"/>
এখানে:
Click="Button_Click"ইভেন্ট হ্যান্ডলার ডিফাইন করেছে যা বাটন ক্লিক হওয়ার সময় কল হবে।
Event Handling in XAML
XAML ফাইলের মধ্যে ইভেন্টটি ডিফাইন করার পর, সেই ইভেন্টের জন্য একটি হ্যান্ডলার তৈরি করতে হয় কোড-বিহাইন্ড ফাইলে। কোড-বিহাইন্ড ফাইলে C# (বা VB.NET) ব্যবহার করে সেই ইভেন্ট হ্যান্ডলার তৈরি করা হয়।
উদাহরণ:
- XAML ফাইল (UI):
<Button Content="Click Me" Width="100" Height="50" Click="Button_Click"/>
- C# কোড-বিহাইন্ড ফাইল:
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Button Clicked!");
}
এখানে:
Button_Clickহল সেই মেথড যাClickইভেন্ট ঘটলে কল হবে।senderহল বাটন কন্ট্রোল, এবংeহল ইভেন্ট সম্পর্কিত তথ্য (যেমন, কীভাবে ইভেন্ট ঘটেছে)।
ইভেন্ট হ্যান্ডলার সিনট্যাক্স
XAML ফাইলে ইভেন্টটি ডিফাইন করার সময় দুটি গুরুত্বপূর্ণ প্যারামিটার থাকে:
- EventName: ইভেন্টের নাম যা XAML কন্ট্রোলের সাথে যুক্ত করা হয় (যেমন
Click,TextChangedইত্যাদি)। - EventHandler: C# কোড-বিহাইন্ড ফাইলে কল করা হবে এমন মেথডের নাম।
উদাহরণ: MouseEnter ইভেন্ট
- XAML ফাইল (UI):
<Button Content="Hover over me" Width="100" Height="50" MouseEnter="Button_MouseEnter"/>
- C# কোড-বিহাইন্ড ফাইল:
private void Button_MouseEnter(object sender, MouseEventArgs e)
{
MessageBox.Show("Mouse entered the button!");
}
এখানে:
MouseEnter="Button_MouseEnter": যখন মাউস বাটনের মধ্যে প্রবেশ করবে, তখনButton_MouseEnterমেথডটি কল হবে।
Multiple Event Handlers (একাধিক ইভেন্ট হ্যান্ডলার)
একটি কন্ট্রোল একাধিক ইভেন্ট হ্যান্ডলারও ধারণ করতে পারে। যেমন একটি বাটনের জন্য Click ইভেন্ট এবং MouseEnter ইভেন্টের জন্য আলাদা আলাদা হ্যান্ডলার তৈরি করা যেতে পারে।
উদাহরণ:
- XAML ফাইল (UI):
<Button Content="Click and Hover" Width="200" Height="50" Click="Button_Click" MouseEnter="Button_MouseEnter"/>
- C# কোড-বিহাইন্ড ফাইল:
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Button Clicked!");
}
private void Button_MouseEnter(object sender, MouseEventArgs e)
{
MessageBox.Show("Mouse entered the button!");
}
এখানে:
- দুটি আলাদা ইভেন্ট (
ClickএবংMouseEnter) দুটি আলাদা মেথড (Button_ClickএবংButton_MouseEnter) দিয়ে হ্যান্ডেল করা হয়েছে।
XAML এর মধ্যে Event Handling এর কিছু গুরুত্বপূর্ণ পদ্ধতি:
- Code-Behind Event Handling: XAML ফাইলের মধ্যে ইভেন্ট ডিফাইন করা হয় এবং C# কোড-বিহাইন্ড ফাইলে ইভেন্টের জন্য মেথড তৈরি করা হয়।
Command Binding: XAML এ ইভেন্টের পরিবর্তে কমান্ড ব্যবহারের পদ্ধতি, যেখানে ইভেন্টের জন্য আলাদা মেথড বা কোড প্রয়োজন হয় না। এটি সাধারণত MVVM আর্কিটেকচারে ব্যবহৃত হয়।
উদাহরণ:
<Button Content="Execute Command" Command="{Binding MyCommand}"/>- Direct Event Handling in XAML: কিছু পরিস্থিতিতে, XAML এর মাধ্যমে সরাসরি ইভেন্ট হ্যান্ডলিং করা যায়, কিন্তু এটি সাধারণত কম ব্যবহৃত হয়, কারণ কোড-বিহাইন্ড ফাইলের মাধ্যমে ইভেন্ট হ্যান্ডলিং বেশি কার্যকর।
সারাংশ
- Control Events হলো UI উপাদানগুলোর সাথে ঘটে এমন ব্যবহারকারী বা সিস্টেমের ক্রিয়া, যা প্রোগ্রামে ইভেন্ট হ্যান্ডলার দ্বারা প্রক্রিয়া করা হয়।
- Event Handling XAML ফাইলে ইভেন্ট ডিফাইন করা এবং কোড-বিহাইন্ড ফাইলে ইভেন্ট হ্যান্ডলার তৈরি করে কার্যকর করা হয়।
- XAML ফাইলে
EventName="EventHandler"এর মাধ্যমে ইভেন্ট ডিফাইন করা হয়, এবং C# কোড-বিহাইন্ড ফাইলে সেই ইভেন্টের জন্য একটি মেথড তৈরি করা হয়।
XAML এবং C# কোড-বিহাইন্ডের মাধ্যমে ইভেন্ট হ্যান্ডলিং অ্যাপ্লিকেশনে ইউজারের ইন্টারঅ্যাকশনের প্রতিক্রিয়া তৈরি করতে অত্যন্ত গুরুত্বপূর্ণ।
XAML (Extensible Application Markup Language) একটি XML-ভিত্তিক ভাষা যা ব্যবহারকারীর ইন্টারফেসের বিভিন্ন উপাদান তৈরি করতে ব্যবহৃত হয়। XAML এ Input Controls ব্যবহার করে ইউজার ইন্টারঅ্যাকশনের জন্য বিভিন্ন উপাদান তৈরি করা হয়। এর মধ্যে Slider, RadioButton, এবং ListBox কিছু সাধারণ এবং গুরুত্বপূর্ণ ইনপুট কন্ট্রোল।
এই কন্ট্রোলগুলো ব্যবহারকারীর ইনপুট নেওয়ার জন্য বা তাদের UI এ ডাটা নির্বাচন এবং অ্যাকশন সম্পাদন করার জন্য ব্যবহৃত হয়।
Slider Control
Slider একটি ইনপুট কন্ট্রোল, যা ব্যবহারকারীদের একটি নির্দিষ্ট পরিসরের মধ্যে মান নির্বাচন করতে দেয়। এটি সাধারণত কোন প্রকারের মান (যেমন: পরিমাণ, ভলিউম, উজ্জ্বলতা) পরিবর্তন করতে ব্যবহৃত হয়।
উদাহরণ:
<Slider Name="volumeSlider" Minimum="0" Maximum="100" Value="50" Width="200" />
<TextBlock Name="sliderValueText" Text="50" />
এখানে:
Minimum="0": স্লাইডারের সর্বনিম্ন মান।Maximum="100": স্লাইডারের সর্বোচ্চ মান।Value="50": স্লাইডারের প্রাথমিক মান।Width="200": স্লাইডারের প্রস্থ।
ইভেন্ট হ্যান্ডলিং:
<Slider Name="volumeSlider" Minimum="0" Maximum="100" ValueChanged="VolumeSlider_ValueChanged" />
<TextBlock Name="sliderValueText" />
কোড-বিহাইন্ডে:
private void VolumeSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
sliderValueText.Text = volumeSlider.Value.ToString();
}
এখানে ValueChanged ইভেন্টটি স্লাইডারের মান পরিবর্তন হওয়ার সাথে সাথে ট্রিগার হয় এবং টেক্সট ব্লকে স্লাইডারের মান দেখানো হয়।
RadioButton Control
RadioButton একটি ইনপুট কন্ট্রোল যা একাধিক বিকল্প থেকে একটি নির্বাচন করতে ব্যবহার করা হয়। রেডিও বাটনগুলির মধ্যে একটির বেশি নির্বাচন করা সম্ভব নয়; একমাত্র সক্রিয় রেডিও বাটনই নির্বাচিত থাকতে পারে।
উদাহরণ:
<StackPanel>
<RadioButton Name="option1" Content="Option 1" GroupName="Options" IsChecked="True"/>
<RadioButton Name="option2" Content="Option 2" GroupName="Options"/>
<RadioButton Name="option3" Content="Option 3" GroupName="Options"/>
</StackPanel>
এখানে:
GroupName="Options": একে অপরের সাথে সম্পর্কিত রেডিও বাটনগুলিকে একটি গ্রুপে রাখে, যাতে একবারে একটি অপশন সিলেক্ট করা যায়।IsChecked="True": প্রথম রেডিও বাটনটি প্রাথমিকভাবে নির্বাচিত।
ইভেন্ট হ্যান্ডলিং:
<RadioButton Name="option1" Content="Option 1" Checked="RadioButton_Checked"/>
<RadioButton Name="option2" Content="Option 2" Checked="RadioButton_Checked"/>
<TextBlock Name="selectedOptionText" />
কোড-বিহাইন্ডে:
private void RadioButton_Checked(object sender, RoutedEventArgs e)
{
selectedOptionText.Text = ((RadioButton)sender).Content.ToString();
}
এখানে Checked ইভেন্টটি যখন একটি রেডিও বাটন চেক করা হয়, তখন তা ট্রিগার হয় এবং নির্বাচিত অপশন টেক্সট ব্লকে প্রদর্শিত হয়।
ListBox Control
ListBox একটি ইনপুট কন্ট্রোল যা ব্যবহারকারীদের এক বা একাধিক আইটেম নির্বাচন করার জন্য ব্যবহৃত হয়। এটি সাধারণত ড্রপডাউন বা নির্বাচনযোগ্য আইটেমের তালিকা প্রদর্শন করার জন্য ব্যবহার করা হয়।
উদাহরণ:
<ListBox Name="itemList" Width="200">
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 2" />
<ListBoxItem Content="Item 3" />
</ListBox>
এখানে:
ListBoxItem:ListBoxএর মধ্যে প্রতিটি আইটেম।Width="200":ListBoxএর প্রস্থ।
একাধিক নির্বাচন সক্রিয় করা:
<ListBox Name="itemList" Width="200" SelectionMode="Multiple">
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 2" />
<ListBoxItem Content="Item 3" />
</ListBox>
এখানে:
SelectionMode="Multiple": এটি ব্যবহারকারীদের একাধিক আইটেম নির্বাচন করতে দেয়।
ইভেন্ট হ্যান্ডলিং:
<ListBox Name="itemList" SelectionChanged="ItemList_SelectionChanged">
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 2" />
<ListBoxItem Content="Item 3" />
</ListBox>
<TextBlock Name="selectedItemText" />
কোড-বিহাইন্ডে:
private void ItemList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
selectedItemText.Text = itemList.SelectedItem.ToString();
}
এখানে SelectionChanged ইভেন্টটি ট্রিগার হয় যখন ব্যবহারকারী একটি আইটেম নির্বাচন করেন এবং টেক্সট ব্লকে নির্বাচিত আইটেমটি প্রদর্শিত হয়।
সারাংশ
- Slider: ব্যবহারকারীদের একটি নির্দিষ্ট পরিসরের মধ্যে মান নির্বাচন করতে দেয় এবং এর মাধ্যমে ডাটা পরিবর্তন করা যায়।
- RadioButton: একাধিক বিকল্প থেকে একটি নির্বাচন করতে ব্যবহৃত হয়, এবং একে অন্যের মধ্যে একমাত্র একটি বাছাই করা যেতে পারে।
- ListBox: একটি তালিকা থেকে এক বা একাধিক আইটেম নির্বাচন করতে ব্যবহৃত হয় এবং এটি ব্যবহারকারীদের একটি নির্দিষ্ট তালিকা থেকে আইটেম সিলেক্ট করার সুযোগ দেয়।
এই ইনপুট কন্ট্রোলগুলো XAML এর মাধ্যমে ইউজার ইন্টারফেসে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং ইউজার ইন্টারঅ্যাকশন সহজ ও কার্যকর করে তোলে।
XAML (Extensible Application Markup Language) একটি অত্যন্ত শক্তিশালী ভাষা, যা UI উপাদানগুলোর জন্য ডিক্লারেটিভ সিঙ্ক্রোনাইজেশন প্রদান করে। এর মধ্যে Content Control এবং Custom Content Integration দুটি গুরুত্বপূর্ণ ধারণা, যা UI কন্ট্রোলের কনটেন্ট ম্যানেজমেন্ট এবং কাস্টম কন্টেন্ট তৈরি করার জন্য ব্যবহৃত হয়।
Content Control
Content Control হলো এমন একটি UI কন্ট্রোল যা অন্য UI উপাদান বা কনটেন্ট ধারণ করতে সক্ষম। এটি সাধারণত TextBlock, Button, Label, ComboBox ইত্যাদি কন্ট্রোলগুলোর মধ্যে ব্যবহৃত হয়। Content Control মূলত সেই কন্ট্রোল যা কনটেন্ট বা ডেটা ডিসপ্লে করতে পারে এবং সেই কন্টেন্টকে পরিবর্তন বা কাস্টমাইজ করতে পারে।
Content Control এর ব্যবহার
XAML-এ Content Control সাধারণত কনটেন্ট হোস্ট করার জন্য ব্যবহৃত হয়, যেমন একটি Button বা Label কন্ট্রোলের মধ্যে কনটেন্ট দেওয়া হয়। কনটেন্ট হতে পারে টেক্সট, ইমেজ, বা অন্য যেকোনো UI উপাদান।
উদাহরণ:
<Button Content="Click Me" Width="100" Height="50"/>
এখানে Button হল Content Control, যেখানে Content="Click Me" একটি টেক্সট কনটেন্ট হিসেবে সেট করা হয়েছে।
ContentControl Class
XAML-এ ContentControl ক্লাসের মাধ্যমে কনটেন্টকে হ্যান্ডেল করা হয়। এটি বিভিন্ন ধরনের কনটেন্ট ধরতে পারে, যেমন একটি টেক্সট, একটি ইমেজ, অথবা একাধিক UI উপাদানগুলির সমন্বয়।
উদাহরণ:
<ContentControl>
<StackPanel>
<TextBlock Text="Hello, World!" />
<Button Content="Click Me" Width="100" Height="50" />
</StackPanel>
</ContentControl>
এখানে ContentControl এর মধ্যে StackPanel কনটেন্ট হিসেবে রয়েছে, যা একটি TextBlock এবং একটি Button ধারণ করছে।
Custom Content Integration
XAML-এ Custom Content Integration এর মাধ্যমে আপনি কাস্টম কন্ট্রোল বা কাস্টম কনটেন্ট তৈরি করে তা XAML ফাইলে ইন্টিগ্রেট করতে পারেন। কাস্টম কন্ট্রোল বা কাস্টম কনটেন্ট তৈরির জন্য আপনাকে ContentControl বা UserControl ব্যবহার করতে হয়।
কাস্টম কন্ট্রোল তৈরি করার জন্য Steps:
- Custom Content Class তৈরি করা: প্রথমে একটি কাস্টম কন্ট্রোল বা কাস্টম কনটেন্ট ক্লাস তৈরি করুন যা
ContentControlবাUserControlএর উপর ভিত্তি করে। - XAML-এ কাস্টম কন্টেন্ট ইন্টিগ্রেট করা: তৈরি করা কাস্টম কন্ট্রোলটি XAML ফাইলে এক্সপোর্ট করে সেখানে ব্যবহার করতে পারেন।
উদাহরণ:
- Custom ContentControl তৈরি:
C# কোড:
public class MyCustomControl : ContentControl
{
static MyCustomControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomControl), new FrameworkPropertyMetadata(typeof(MyCustomControl)));
}
}
- XAML ফাইলে কাস্টম কন্ট্রোল ব্যবহার:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyApp.Controls"
Title="Custom Control Example" Height="350" Width="525">
<Grid>
<local:MyCustomControl>
<TextBlock Text="This is custom content!" />
</local:MyCustomControl>
</Grid>
</Window>
এখানে local:MyCustomControl ব্যবহার করে কাস্টম কন্ট্রোলকে XAML-এ ইন্টিগ্রেট করা হয়েছে এবং এর মধ্যে একটি TextBlock কনটেন্ট হিসেবে রাখা হয়েছে।
ContentControl এর বৈশিষ্ট্য
- Flexibility: ContentControl যেকোনো ধরনের কনটেন্ট ধারণ করতে সক্ষম, যেমন টেক্সট, গ্রিড, প্যানেল, এবং এমনকি কাস্টম কন্ট্রোল।
- ডাটা বাইন্ডিং: ContentControl সহজে ডাটা বাইন্ডিং সমর্থন করে, তাই ডেটার সাথে কনটেন্টের পরিবর্তন ডাইনামিকভাবে করা যায়।
- Style এবং Templates: ContentControl এর মধ্যে থাকা কনটেন্টে স্টাইল এবং টেমপ্লেট প্রয়োগ করা যেতে পারে।
- Custom Content: কাস্টম কন্ট্রোল তৈরির জন্য ContentControl ব্যবহার করা যেতে পারে।
উদাহরণ:
<ContentControl Content="{Binding SomeText}" />
এখানে ContentControl এর কনটেন্ট হিসেবে ডাটা বাইন্ডিং ব্যবহার করা হচ্ছে, যেখানে SomeText একটি ডেটা প্রপার্টি থেকে কনটেন্ট আসবে।
Custom Content Integration এর সুবিধা
- Reusability (পুনঃব্যবহারযোগ্যতা): কাস্টম কন্টেন্ট বা কাস্টম কন্ট্রোল একবার তৈরি করার পরে এটি বিভিন্ন স্থানে পুনরায় ব্যবহার করা যায়।
- Customization (কাস্টমাইজেশন): আপনি নিজের UI উপাদান তৈরি করতে পারেন যা বিদ্যমান কন্ট্রোলগুলির চেয়ে বেশি উপযোগী এবং কাস্টমাইজেবল।
- Clean Code Structure (পরিষ্কার কোড স্ট্রাকচার): কাস্টম কন্টেন্ট ব্যবহারের মাধ্যমে আপনার অ্যাপ্লিকেশনের কোড আরও পরিষ্কার এবং মেইনটেনযোগ্য হতে পারে।
সারাংশ
- Content Control হল এমন একটি কন্ট্রোল যা UI উপাদান বা কনটেন্ট ধারণ করতে সক্ষম এবং সাধারণত বিভিন্ন কনটেন্ট প্রদর্শন করতে ব্যবহৃত হয়।
- Custom Content Integration আপনাকে কাস্টম কন্ট্রোল তৈরি করার সুযোগ দেয় যা XAML-এ ইনক্লুড করতে পারেন।
- XAML-এ ContentControl এবং UserControl ব্যবহার করে আপনি কাস্টম কন্টেন্ট সহজে এক্সপোর্ট এবং ইন্টিগ্রেট করতে পারবেন।
Read more