以编程方式从Generic.xaml查找资源

时间:2013-01-25 19:02:14

标签: c# wpf xaml

我正在尝试实施Style Binding from this article in WPF & Silverlight

我有一个资源字典,generic.Xaml,代码如下:

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

   <ResourceDictionary.MergedDictionaries>
       <ResourceDictionary Source="/AComponent;component/Themes/MyCustomStyles.xaml" />
   </ResourceDictionary.MergedDictionaries>

MyCustomStyles.xaml就像这样开始

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

   <t:ThemeColorProvider x:Key="ThemeProvider"/>

我需要获取ThemeProvider的实例来更新我在Generic.xaml中绑定的颜色/画笔。是否可以获取资源的实例键入“ThemeProvider”,以便我可以更新它?

如果您了解跨平台WPF&amp; Silverlight实现!

注意:我需要在声明Generic.xaml

的程序集中获取 之外的

2 个答案:

答案 0 :(得分:2)

如果您的资源是在generic.xaml中定义的,或者是在App.xaml中的MergedDictionaries中定义的任何资源,那么您需要使用Application.Current.Resources,例如:

  

BackgroundColor =   (彩色)Application.Current.Resources [ “ApplicationBarBackgroundColor”]

答案 1 :(得分:1)

这可能有所帮助:

ThemeColorProvider value= (ThemeColorProvider)FindResource("ThemeProvider");
// update value