سیستم
Resourceدر WPF راهی برای نگهداری و استفاده مجدد از یک مجموعه شی ، براش ها ،Template ها ،رنگ ها و... است.شما می توانید به راحتی Resource ها را در کد XAML مربوط به یک Window و یا به عنوان Resource کل برنامه تعریف کنید که با این عمل مقدار خیلی زیادی از کدنویسی کاهش می یابد همچنین امکان تغییر در ظاهر سیستم بسیار سهل می گردد.
پایه و اساس Resource :
WPF این امکان را فراهم می کند که Resource ها را در کد و یا در قسمت های مختلف تعریف کنید به عنوان مثال Resource می تواند برای یک کنترل خاص و یا یک پنجره خاص و حتی برای یک برنامه خاص تعریف شود.
تا اینجا بیان نمودم که Resource می تواند برای هر کنترلی تعریف شود این به این دلیل است که هر FrameworkElement دارای پیاده سازی ضمنی از کلاس ResourceDictionary است.
ResourceDictionary مجموعه ای از Resource ها را در خود نگه داری می کند که این Resourceها می توانند هر نوع شئ را در خود نگهداری کنند که بوسیله ویژگی Key که رشته است،ایندکس می شوند.
یک نمونه ساده تعریف و استفاده از Resource:
در این نمونه می خواهیم یک RadialGradientBrushتعریف کرده سپس آن را به خاصیت Backgroundچند دکمه نسبت دهیم.
<Window.Resources>
<RadialGradientBrush x:Key="btnGRBrush" >
<GradientStop Color="Azure" Offset="0.4"/>
<GradientStop Color="Peru" Offset="0.55"/>
<GradientStop Color="PaleGoldenrod" Offset="1"/>
</RadialGradientBrush>
</Window.Resources>
<StackPanel >
<Button Background="{StaticResource btnGRBrush}" Margin="5">Button 1</Button>
<Button Margin="5">Button 2</Button>
<Button Background="{StaticResource btnGRBrush}" Margin="5">Button 3</Button>
<Button Margin="5">Button 4</Button>
</StackPanel>
دقت داشته باشید در کد XAML بالابرای دودکمه از RadialGradientBrush تعریف شده در Resource پنجره استفاده شده که خروجی نیز در تصویر زیر به نمایش در آمده است.