فرض کنید داخل پرونده Xaml تان دو SolidColorBrush تنظیم کرده اید و قصد دارید در طول برنامه سی شارپتان رنگ پس زمینه یک عنصر را بین آن دو جابجا کنید؛ اگر در اینترنت مقداری بگردید، اکثرا این کد را به شما پیشنهاد می کنند:
1 |
myElement.Background = this.Resource[key]; |
اما این کد باعث می گردد تا مقدار آن SolidColorBrush تنها در لحظه محاسبه شده و تنظیم گردد؛ در حالی که ما نیاز داریم تا اگر مقدار SolidColorBrush را تغییر دادیم رنگ اجزای استفاده کننده از آن نیز به صورت خودکار تغییر کنند.
پس از مقداری جستجو به کد های زیر رسیدم:
در XAML:
1 |
<Grid x:Name="myElement" Background="{DynamicResource key}"/> |
در C#:
1 2 |
myElement.SetResourceReference(Grid.BackgroundProperty, "key"); // Grid صفت عنصر ماست (Border,Button,...) |