我正在尝试从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);
}
有什么想法吗?
答案 0 :(得分:4)
语法Resources["HoverColorBrush"]
查找存储在当前对象资源中的资源。在这种情况下,包含方法LinkContinue_MouseEnter
。
如果您想使用{StaticResource HoverColorBrush}
将使用的相同查找机制,则需要使用FindResource
方法:
但是,幸运的是,Silverlight不支持FindResource
,因此您需要直接在ResourceDictionary
中定义的Styles.xaml
中查找资源,或者自己动手FindResource
。
以下是一篇关于此主题的博客文章,其中包含示例代码:
答案 1 :(得分:3)
所以答案是Application.Current.Resources["ResourceName"] as SolidColorBrush
!谁会知道Resources对象指向页面的资源字典? UGHHH