解决C#中的资源

时间:2011-12-30 03:27:46

标签: wpf resources code-behind

在XAML中,{StaticResource somename}将从控制资源到窗口资源,最后是应用程序资源。在同一表单的代码后面,Resources["somename"]仅出现在窗口资源上运行。

我发现在窗口的代码隐藏中,为了解析在应用程序级别定义的资源,有必要明确引用App.Current.Resources

我是否使用了错误的内容,或者这是预期的行为?

1 个答案:

答案 0 :(得分:0)

我推荐Resources Overview

当您在XAML中使用StaticResource标记扩展时,它将向上走逻辑树,搜索“somename”资源。您可以使用FrameworkElement.FindResource(或TryFindResource)方法在代码中执行相同的操作:

        myButton.Background = (Brush)this.FindResource("RainbowBrush");

当你使用someFrameworkElement.Resources [“somename”]时,你直接访问该框架元素的资源字典,这与访问常规字典或散列表对象没有什么不同 - 它没有任何智能来遍历逻辑树。