WPF (Windows Presentation Foundation) অ্যাপ্লিকেশনগুলিতে, Static Resources এবং Dynamic Resources হল দুটি প্রধান ধরনের রিসোর্স ব্যবস্থাপনা পদ্ধতি, যা UI কন্ট্রোলের স্টাইল, টেমপ্লেট, বা অন্যান্য বৈশিষ্ট্যগুলি কাস্টমাইজ করতে ব্যবহৃত হয়। এই রিসোর্সগুলি XAML ফাইলে সংজ্ঞায়িত করা হয় এবং বিভিন্ন UI উপাদানের সাথে শেয়ার করা যেতে পারে। তবে, তাদের কাজের পদ্ধতি এবং ব্যবহার ভিন্ন।
Static Resources
Static Resources হল এমন রিসোর্স যা অ্যাপ্লিকেশন লোড হওয়ার সময় একবার লোড হয় এবং তার পর থেকে পরিবর্তিত হয় না। যখন একটি রিসোর্সের মান নির্দিষ্ট এবং পরিবর্তনশীল নয়, তখন Static Resource ব্যবহৃত হয়।
Static Resources এর বৈশিষ্ট্য (Features of Static Resources)
- একই মান সারা অ্যাপ্লিকেশনে শেয়ার করা হয়: Static Resource একবার লোড হওয়ার পর, এটি পুরো অ্যাপ্লিকেশনে একই মান বজায় রাখে।
- স্টাইল, ব্রাশ, থিম ইত্যাদি সংজ্ঞায়িত করা হয়: আপনি একটি Static Resource এ স্টাইল, ব্রাশ, কোলার, ইমেজ, বা অন্য কোনো ভ্যালু ডিফাইন করতে পারেন।
- অ্যাপ্লিকেশন লোডের সময় একবার রেন্ডার হয়: একবার লোড হয়ে গেলে এটি আর পরিবর্তিত হয় না, এবং রেসোর্সের মান পরিবর্তন করা সম্ভব হয় না।
Static Resource এর উদাহরণ (Example of Static Resource)
App.xaml:
<Application x:Class="WPFApplication.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<SolidColorBrush x:Key="ButtonBackground" Color="LightBlue"/>
</Application.Resources>
</Application>
এখানে, ButtonBackground একটি Static Resource যা LightBlue রঙের ব্রাশ ডিফাইন করছে।
MainWindow.xaml:
<Window x:Class="WPFApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Static Resource Example" Height="350" Width="525">
<Grid>
<Button Content="Click Me" Background="{StaticResource ButtonBackground}" Width="100" Height="50"/>
</Grid>
</Window>
এখানে, ButtonBackground Static Resource হিসেবে বাটনের ব্যাকগ্রাউন্ডে ব্যবহার করা হয়েছে।
Dynamic Resources
Dynamic Resources হল এমন রিসোর্স যা অ্যাপ্লিকেশন চলাকালীন সময়ে পরিবর্তিত হতে পারে। এটি runtime এ পরিবর্তনশীল মান ধারণ করে এবং একাধিক বার রিফ্রেশ বা আপডেট হতে পারে।
Dynamic Resources এর বৈশিষ্ট্য (Features of Dynamic Resources)
- অ্যাপ্লিকেশন চলাকালীন সময়ে পরিবর্তিত হতে পারে: Dynamic Resource ব্যবহার করা হয় যখন রিসোর্সের মান চলাকালীন সময়ে পরিবর্তিত হতে পারে, যেমন থিম পরিবর্তন, ভাষার পরিবর্তন ইত্যাদি।
- রিসোর্সের আপডেটিং সাপোর্ট: Dynamic Resource একবার লোড হয়ে যাওয়ার পর, এটি কোনো পরিবর্তন হলে আবার আপডেট হতে পারে। এটি ডাইনামিক ইন্টারফেস তৈরির জন্য খুবই উপকারী।
- স্টাইল, ব্রাশ, অথবা টেক্সটের পরিবর্তন: Dynamic Resource স্টাইল বা অন্য UI উপাদান পরিবর্তনের সময় ব্যবহার করা হয় যখন সেটি ইউজারের ইন্টারঅ্যাকশনের ভিত্তিতে পরিবর্তন করতে হবে।
Dynamic Resource এর উদাহরণ (Example of Dynamic Resource)
App.xaml:
<Application x:Class="WPFApplication.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<SolidColorBrush x:Key="ButtonBackground" Color="LightBlue"/>
</Application.Resources>
</Application>
এখানে, ButtonBackground একটি Dynamic Resource যা প্রথমে LightBlue রঙ ধারণ করছে।
MainWindow.xaml:
<Window x:Class="WPFApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Dynamic Resource Example" Height="350" Width="525">
<Grid>
<Button Content="Click Me" Background="{DynamicResource ButtonBackground}" Width="100" Height="50"/>
</Grid>
</Window>
এখানে, ButtonBackground Dynamic Resource হিসেবে বাটনের ব্যাকগ্রাউন্ডে ব্যবহৃত হয়েছে।
কখনও কখনও, আপনি চাইতে পারেন যে ব্যাকগ্রাউন্ডের রঙ একটি বাটনে ক্লিক করার মাধ্যমে পরিবর্তিত হোক, যেমন:
MainWindow.xaml.cs:
private void Button_Click(object sender, RoutedEventArgs e)
{
Application.Current.Resources["ButtonBackground"] = new SolidColorBrush(Colors.Green);
}
এখানে, ButtonBackground Dynamic Resource পরিবর্তন করতে Button_Click ইভেন্টের মধ্যে C# কোড ব্যবহার করা হয়েছে।
Static Resource এবং Dynamic Resource এর মধ্যে পার্থক্য (Differences Between Static Resource and Dynamic Resource)
| Feature | Static Resource | Dynamic Resource |
|---|---|---|
| Update | একবার লোড হওয়ার পর পরিবর্তিত হয় না | চলাকালীন সময়ে রিসোর্স আপডেট হতে পারে |
| Performance | একবার লোড হওয়ার পর অধিক কার্যকরী | রিসোর্সের আপডেটের জন্য অতিরিক্ত প্রসেসিং |
| Use Case | যখন রিসোর্সের মান পরিবর্তন হবে না | যখন রিসোর্সের মান অ্যাপ্লিকেশন চলাকালীন সময়ে পরিবর্তিত হতে পারে |
| Common Use | থিম, স্টাইল, ব্যাকগ্রাউন্ড ব্রাশ ইত্যাদি | থিম পরিবর্তন, রঙ পরিবর্তন, ইউজার ইনপুটের পর প্রতিক্রিয়া |
| XAML Usage | {StaticResource ResourceName} | {DynamicResource ResourceName} |
সারাংশ (Summary)
- Static Resources হল এমন রিসোর্স যা অ্যাপ্লিকেশন লোড হওয়ার সময় একবার লোড হয় এবং পরে এটি পরিবর্তিত হয় না। এটি সাধারণত স্টাইল, ব্রাশ, টেমপ্লেট ইত্যাদি ক্ষেত্রে ব্যবহৃত হয়।
- Dynamic Resources হল এমন রিসোর্স যা অ্যাপ্লিকেশন চলাকালীন সময়ে পরিবর্তিত হতে পারে এবং এটি ইউজারের ইন্টারঅ্যাকশন বা অন্যান্য ইভেন্টে পরিবর্তিত হতে পারে। এটি সাধারণত থিম বা স্টাইলের পরিবর্তনের জন্য ব্যবহৃত হয়।
এগুলি নির্বাচনের মাধ্যমে, আপনি আপনার WPF অ্যাপ্লিকেশনে প্রয়োজনীয় লজিক এবং ইউজার ইন্টারফেসের আপডেট প্রক্রিয়া নির্ধারণ করতে পারবেন।
Read more