وقتی بخواهید که Resource های خود در پروژه های دیگر استفاده کنید و یا حتی آنها را از هم جدا کنید تا در صورت نیاز به راحتی از آنها استفاده کنید برای این منظور از Resource Dictionary استفاده می کنیم.Resource Dictionary یک فایل XAML ساده است که کاری انجام نمی دهد بلکه Resource ها را در خود نگهداری می کند.
ساخت یک Resource Dictionary ساده :
برای این منظور از منوی Project سپس Add New item کلیک کرده سپس از پنجره باز شده " Reource Dictionary " را انتخاب می کنیم.فایل XAML جدیدی با محتوای زیر باز می شود.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</ResourceDictionary>
سپس Resource های خود را در آن می نویسیم و برای استفاده از آن بسته به نیاز خود در کنترل ،پنجره و یا برنامه از آن به صورت زیر استفاده می کنیم.
در اینجا از Resource Dictionary در Application Resource استفاده شده است:
<Application x:Class="wpf_resources.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary Source="WhistlerBlue.xaml"/>
</Application.Resources>
</Application>
نکته : توجه داشته باشید خاصیت Build Action فایل Dictionary حتما با Page تنظیم شده باشد Performance بالای داشته باشیم
نکته : اگر در برنامه خورد چندین Resource Dictionary داشته باشیم که حتما همینطور است از روش زیر برای استفاده از آنها استفاده می کنیم
<Application x:Class="wpf_resources.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="WhistlerBlue.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>