XAML (Extensible Application Markup Language) এ Custom Control এবং User Control তৈরি করার মাধ্যমে আপনি আপনার প্রজেক্টের জন্য কাস্টম UI উপাদান তৈরি করতে পারেন। এই দুটি কন্ট্রোল আলাদা উদ্দেশ্য পূর্ণ করে এবং তাদের নিজস্ব বৈশিষ্ট্য ও ব্যবহারের পদ্ধতি রয়েছে।
Custom Control
Custom Control হল একটি কাস্টম UI উপাদান যা WPF অ্যাপ্লিকেশনগুলিতে পুনঃব্যবহারযোগ্য এবং কাস্টমাইজেবল হতে পারে। এই কন্ট্রোলটি সম্পূর্ণভাবে কাস্টমাইজড এবং সাধারণত স্টাইল বা টেমপ্লেটের মাধ্যমে পরিবর্তনযোগ্য।
Custom Control তৈরি করার পদ্ধতি:
- নতুন Custom Control তৈরি করুন:
Projectএ নতুন একটিClassতৈরি করুন যাControlক্লাস থেকে ইনহেরিট করবে।
- ControlTemplate নির্ধারণ করুন:
- কাস্টম কন্ট্রোলের UI তৈরি করতে একটি
ControlTemplateতৈরি করুন।
- কাস্টম কন্ট্রোলের UI তৈরি করতে একটি
- Property ও Behavior ডিফাইন করুন:
- কন্ট্রোলটির বিভিন্ন প্রপার্টি এবং বিহেভিয়ার বা ইন্টারঅ্যাকশন সেট করুন।
উদাহরণ:
Custom Control Class:
using System.Windows; using System.Windows.Controls; namespace MyApp.Controls { public class CustomButton : Control { static CustomButton() { // DefaultStyleKey is used to link the custom control to its template DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomButton), new FrameworkPropertyMetadata(typeof(CustomButton))); } } }ControlTemplate (XAML):
- এই কন্ট্রোলটি ব্যবহার করার জন্য একটি
ControlTemplateতৈরি করতে হবে। Themes/Generic.xamlফাইলে এটি যুক্ত করতে হবে।
<Style TargetType="local:CustomButton"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:CustomButton"> <Button Content="Custom Button" Background="SkyBlue" /> </ControlTemplate> </Setter.Value> </Setter> </Style>এখানে
local:CustomButtonএকটি কাস্টম কন্ট্রোল, যারButtonকন্ট্রোলের টেমপ্লেট তৈরি করা হয়েছে।- এই কন্ট্রোলটি ব্যবহার করার জন্য একটি
ব্যবহার (UI ফাইলে):
<Window xmlns:local="clr-namespace:MyApp.Controls" Title="Custom Control Example" Height="300" Width="400"> <Grid> <local:CustomButton HorizontalAlignment="Center" VerticalAlignment="Center"/> </Grid> </Window>
এখানে:
CustomButtonহল কাস্টম কন্ট্রোল এবং এটি সাধারণButtonকন্ট্রোলের মতো কাজ করবে, কিন্তু এতে একটি কাস্টম স্টাইল বা টেমপ্লেট রয়েছে।
User Control
User Control হল একটি UI উপাদান যা একাধিক UI উপাদানকে একটি কন্ট্রোলের মধ্যে গ্রুপ করতে ব্যবহৃত হয়। এটি একটি কাস্টম UI কম্পোনেন্ট তৈরি করার একটি সহজ পদ্ধতি, যেখানে একাধিক কন্ট্রোল, ইভেন্ট এবং অন্যান্য ফিচারগুলো একত্রিত করা যায়। এটি সাধারণত একটি UI কন্ট্রোলের ডিভাইস হিসেবে ব্যবহৃত হয়।
User Control তৈরি করার পদ্ধতি:
- নতুন User Control তৈরি করুন:
Projectএ একটি নতুনUserControlতৈরি করুন যা একটি XAML ফাইল এবং কোড-বিহাইন্ড ফাইল সহ থাকে।
- UI ডিজাইন করুন:
- XAML ফাইলে প্রয়োজনীয় UI কন্ট্রোল এবং লেআউট উপাদানগুলো ডিজাইন করুন।
- ইভেন্ট হ্যান্ডলিং এবং বৈশিষ্ট্য যুক্ত করুন:
- কোড-বিহাইন্ড ফাইলে ইভেন্ট হ্যান্ডলিং এবং অন্যান্য প্রোপার্টি বা ফাংশন ডিফাইন করুন।
উদাহরণ:
UserControl XAML (MyUserControl.xaml):
<UserControl x:Class="MyApp.Controls.MyUserControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="200" Height="100"> <Grid> <Button Name="myButton" Content="Click Me" Width="100" Height="50" Click="MyButton_Click"/> </Grid> </UserControl>UserControl Code-Behind (MyUserControl.xaml.cs):
using System.Windows; using System.Windows.Controls; namespace MyApp.Controls { public partial class MyUserControl : UserControl { public MyUserControl() { InitializeComponent(); } private void MyButton_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Button clicked in User Control!"); } } }ব্যবহার (UI ফাইলে):
<Window x:Class="MyApp.MainWindow" 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="User Control Example" Height="300" Width="400"> <Grid> <local:MyUserControl HorizontalAlignment="Center" VerticalAlignment="Center"/> </Grid> </Window>
এখানে:
MyUserControlহল একটি কাস্টম ইউজার কন্ট্রোল যা একটি বাটন ধারণ করে। বাটনটি ক্লিক করলে একটি মেসেজ বক্স প্রদর্শিত হবে।
Custom Control এবং User Control এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Custom Control | User Control |
|---|---|---|
| সংজ্ঞা | একক কাস্টম UI উপাদান। এটি একটি সম্পূর্ণ কন্ট্রোল যার নিজস্ব টেমপ্লেট এবং স্টাইল থাকে। | একাধিক UI উপাদান একটি কন্ট্রোলের মধ্যে গ্রুপ করা। এটি একটি কাস্টম কম্পোনেন্ট। |
| বৈশিষ্ট্য | কাস্টম কন্ট্রোলটি সম্পূর্ণভাবে কাস্টমাইজ করা যায়। এটি স্টাইল এবং টেমপ্লেট দ্বারা পরিবর্তিত হয়। | ইউজার কন্ট্রোলটি সহজে পুনঃব্যবহারযোগ্য এবং সাধারণত UI উপাদানগুলোর মধ্যে একত্রিত করা হয়। |
| প্রয়োগ | সাধারণত ফ্রেমওয়ার্কের কন্ট্রোলগুলোর বাইরে কাস্টম কন্ট্রোল তৈরি করতে ব্যবহৃত হয়। | একাধিক UI কন্ট্রোল একত্রিত করে নতুন কাস্টম UI তৈরি করার জন্য ব্যবহৃত হয়। |
| উপযোগিতা | এটি সাধারণত সম্পূর্ণ কাস্টম ডিজাইন এবং ফাংশনালিটির জন্য ব্যবহৃত হয়। | UI উপাদানগুলোকে একত্রিত করে UI কন্ট্রোল তৈরি করতে ব্যবহৃত হয়। |
সারাংশ
- Custom Control তৈরি করলে একটি সম্পূর্ণ কাস্টম কন্ট্রোল তৈরি হয় যা UI টেমপ্লেট এবং স্টাইলের মাধ্যমে পরিবর্তনযোগ্য। এটি পুনঃব্যবহারযোগ্য এবং স্টাইল বা টেমপ্লেট দ্বারা কাস্টমাইজ করা যেতে পারে।
- User Control একটি সহজ পদ্ধতিতে একাধিক UI উপাদান নিয়ে একটি কাস্টম কন্ট্রোল তৈরি করা যায়। এটি UI এর জন্য একটি ছোট, পুনঃব্যবহারযোগ্য অংশ তৈরি করতে ব্যবহৃত হয়।
উভয় কন্ট্রোলের উদ্দেশ্য আলাদা হলেও, এগুলোর ব্যবহার এবং প্রয়োগ প্রজেক্টের প্রয়োজন অনুযায়ী করা উচিত।
Read more