Silverlight 4 -在运行时从资源字典中检索纯色画笔
本文关键字:字典 检索 纯色 画笔 资源 运行时 Silverlight | 更新日期: 2023-09-27 18:12:25
我试图从c#中检索资源字典(Styles.xaml)中预定义的纯色画笔。
问题是,当我运行以下代码时,什么也没有发生:
private void LinkContinue_MouseEnter(object sender, MouseEventArgs e)
{
this.LinkContinue.Background = (SolidColorBrush)Resources["HoverColorBrush"];
}
但是,如果我在代码中明确设置背景,它会运行良好:
private void LinkContinue_MouseLeave(object sender, MouseEventArgs e)
{
this.LinkContinue.Background = new SolidColorBrush(Colors.Gray);
}
任何想法?
语法Resources["HoverColorBrush"]
查找存储在当前对象的资源中的资源。在本例中,包含方法LinkContinue_MouseEnter
的类的实例的资源。
如果您想使用{StaticResource HoverColorBrush}
将使用的相同查找机制,您需要使用FindResource
方法代替:
-
FrameworkElement.FindResource Method
但是,幸运的是,Silverlight不支持FindResource
,所以你需要直接在Styles.xaml
中定义的ResourceDictionary
中查找资源,或者滚动你自己的FindResource
。
这里有一篇关于这个主题的博客文章和示例代码:
- Silverlight的FindResource实现
所以答案是Application.Current.Resources["ResourceName"] as SolidColorBrush
!谁会知道Resources对象指向页面的资源字典呢?UGHHH