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);
}

任何想法?

Silverlight 4 -在运行时从资源字典中检索纯色画笔

语法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