4

我正在尝试在 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 和 Silverlight 实现,那就加分!

注意:我需要在声明 Generic.xaml 的程序集之外获取它

4

2 回答 2

3

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

BackgroundColor = (Color)Application.Current.Resources["ApplicationBarBackgroundColor"]

于 2015-03-23T14:19:30.460 回答
1

这可能会有所帮助:

ThemeColorProvider value= (ThemeColorProvider)FindResource("ThemeProvider");
// update value
于 2013-01-25T19:15:11.210 回答