XAML (Extensible Application Markup Language) ফাইলের মধ্যে Namespaces ব্যবহার করা হয় বিভিন্ন UI উপাদান এবং কাস্টম ক্লাসগুলোর অ্যাক্সেস দিতে। XAML নেমস্পেস হল একটি উপায় যার মাধ্যমে XAML ডকুমেন্টে ব্যবহৃত কম্পোনেন্ট, কন্ট্রোলস, এবং অন্যান্য ফিচার নির্দিষ্ট করা হয়। এটি XML এর নেমস্পেসের মতোই কাজ করে, তবে XAML এ এটি UI উপাদানগুলোকে পরিচালনা করতে ব্যবহৃত হয়।
Namespaces এর ব্যবহার
XAML এ Namespaces ব্যবহার করার মূল উদ্দেশ্য হলো:
- কাস্টম ক্লাস বা UI কন্ট্রোলস এক্সপোর্ট করা।
- স্ট্যান্ডার্ড UI কন্ট্রোলস এবং কাস্টম কম্পোনেন্টগুলোর মধ্যে পার্থক্য নির্ধারণ করা।
- কোড-বিহাইন্ড ফাইল এবং XAML ফাইলের মধ্যে ইন্টিগ্রেশন করা।
XAML Namespaces এর ধরন
XAML ফাইলে সাধারণত দুই ধরনের নেমস্পেস ব্যবহার করা হয়:
- ডিফল্ট নেমস্পেস (Default Namespace)
- অতিরিক্ত নেমস্পেস (Additional Namespaces)
১. ডিফল্ট নেমস্পেস (Default Namespace)
XAML ফাইলের ডিফল্ট নেমস্পেস ব্যবহার করা হয় XAML UI উপাদানগুলোকে সঠিকভাবে রেন্ডার করার জন্য। এটি সাধারণত http://schemas.microsoft.com/winfx/2006/xaml/presentation হয়ে থাকে এবং এটি উইন্ডোজ অ্যাপ্লিকেশনের UI উপাদানগুলোর জন্য ব্যবহৃত হয়।
উদাহরণ:
<Window 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"/>
</Grid>
</Window>
এখানে:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"হল ডিফল্ট নেমস্পেস, যা XAML ফাইলের UI উপাদানগুলো (যেমনWindow,Button,Grid) এক্সপোর্ট করে।
২. অতিরিক্ত নেমস্পেস (Additional Namespaces)
XAML ফাইলে অতিরিক্ত নেমস্পেস ব্যবহার করা হয় যখন আপনি কাস্টম কোড বা ক্লাস ব্যবহার করতে চান যা XAML ফাইলে এক্সপোর্ট করা হয়নি। এই ধরনের নেমস্পেস সাধারণত xmlns:prefix="namespace" এর মাধ্যমে ডিফাইন করা হয়, যেখানে prefix হল একটি সংক্ষিপ্ত নাম যা ক্লাস বা কাস্টম কম্পোনেন্টকে প্রতিনিধিত্ব করে।
উদাহরণ:
<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="Main Window" Height="300" Width="400">
<Grid>
<local:CustomButton Content="Click Me" Width="100" Height="50"/>
</Grid>
</Window>
এখানে:
xmlns:local="clr-namespace:MyApp.Controls"এই নেমস্পেসটি কাস্টম ক্লাসCustomButtonকে এক্সপোর্ট করে।localহল একটি পছন্দসই প্রিফিক্স এবংMyApp.Controlsহল কাস্টম ক্লাসের নেমস্পেস।
XAML Namespaces এর বিভিন্ন ধরন
১. Presentation Namespace
এটি উইন্ডোজ অ্যাপ্লিকেশনের জন্য ডিফল্ট নেমস্পেস, যেখানে সব ধরনের UI কন্ট্রোল (যেমন Button, TextBlock, Grid ইত্যাদি) ডিফাইন করা হয়।
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
২. XAML Namespace
এটি XAML এর জন্য বিশেষ অ্যাট্রিবিউট এবং ফিচারের জন্য ব্যবহৃত হয়, যেমন x:Class, x:Name ইত্যাদি।
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
৩. CLR Namespace
এটি ব্যবহৃত হয় কাস্টম C# ক্লাস বা কাস্টম কম্পোনেন্টগুলোর জন্য। এর মাধ্যমে আপনি XAML ফাইলে নিজের তৈরি ক্লাস ব্যবহার করতে পারেন।
xmlns:local="clr-namespace:MyAppNamespace"
এখানে clr-namespace কীবোর্ড C# ক্লাসের নেমস্পেস এবং local একটি প্রিফিক্স যা ওই ক্লাস রেফারেন্স করতে ব্যবহৃত হয়।
৪. Resource Dictionary Namespace
এটি UI উপাদানগুলির রিসোর্স বা স্টাইল ডিক্লেয়ার করতে ব্যবহৃত হয়। এটি বিভিন্ন রিসোর্স যেমন রঙ, স্টাইল, ব্রাশ ইত্যাদি এক্সপোর্ট করতে সহায়ক।
xmlns:res="clr-namespace:MyApp.Resources"
৫. Binding Namespace
এটি ডাটা বাইন্ডিং সম্পর্কিত বিভিন্ন ফিচার এক্সপোর্ট করতে ব্যবহৃত হয়।
xmlns:bind="clr-namespace:System.Windows.Data"
XAML Namespaces এর ব্যবহার:
১. স্টাইল এবং রিসোর্স এক্সপোর্ট
স্টাইল এবং রিসোর্স এক্সপোর্টের জন্য বিশেষ ধরনের নেমস্পেস ব্যবহৃত হয়।
<Window.Resources>
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Background" Value="LightBlue"/>
</Style>
</Window.Resources>
২. কাস্টম কন্ট্রোল ব্যবহার
আপনি যদি XAML ফাইলে একটি কাস্টম কন্ট্রোল ব্যবহার করতে চান, তবে সেই কন্ট্রোলের জন্য আপনাকে CLR (Common Language Runtime) নেমস্পেস ব্যবহার করতে হবে।
xmlns:local="clr-namespace:MyApp.Controls"
এবং কাস্টম কন্ট্রোলের মাধ্যমে ব্যবহার করুন:
<local:CustomButton Content="Click Me" Width="100" Height="50"/>
সারাংশ
- Namespaces XAML এ UI উপাদান এবং কাস্টম ক্লাস এক্সপোর্ট করতে ব্যবহৃত হয়।
- ডিফল্ট নেমস্পেস সাধারণত WPF বা UWP অ্যাপ্লিকেশনের UI উপাদানগুলোর জন্য ব্যবহৃত হয়।
- অতিরিক্ত নেমস্পেস কাস্টম ক্লাস এবং কম্পোনেন্টগুলোর জন্য ব্যবহৃত হয়, যেগুলো
xmlns:prefix="namespace"ফর্ম্যাটে ডিফাইন করা হয়। - CLR নেমস্পেস XAML ফাইলে C# ক্লাসের সাথে ইন্টিগ্রেশন সক্ষম করে।
Namespaces ব্যবহারের মাধ্যমে XAML কোডে প্রপার্টি, কম্পোনেন্ট এবং কাস্টম ক্লাসের মধ্যে পারস্পরিক সম্পর্ক স্থাপন করা সহজ হয় এবং XAML ফাইলের কোড এক্সপোর্টেশন অনেক বেশি সুসংহত হয়।
Read more