2010-11-05 51 views
0

我有一个Silverlight类库,其中包含ResourceDictionary对象,其中包含要在整个Silverlight应用程序中传播的样式。我们称之为主题库。我想在主题库中使用隐式样式来设置应用程序中的每个控件。Silverlight ControlLibrary项目中的隐式样式

只需将主题库ResourceDictionaries作为MergedDictionaries添加到App.xaml的ResourceDictionary,这对于主应用程序中的所有控件都很简单。 我遇到的问题是我有一个ControlLibrary,它为某些控件定义了DefaultStyleKey。不幸的是,ControlLibrary中的样式会恢复为由它们组成的任何控件的默认样式,我无法更改它。

任何人都可以解决这个问题吗?

+0

我已经解决了这个问题。我必须将主题的ResourceDictionary作为合并字典添加到ControlLibrary以及主应用程序中的每个ResourceDictionary上。 (抱歉,不是评论,而是答案!) – 2010-11-27 10:15:10

回答

0

我已经解决了这个问题。我必须将主题的ResourceDictionary作为合并字典添加到ControlLibrary以及主应用程序中的每个ResourceDictionary上。

换句话说,主题的ResourceDictionary是一个根ResourceDictionary,它由ControlLibrary和应用程序中的元素引用。

不幸的是,默认样式不会传播通过ControlLibrary元素,所以我不得不手动连线我想在ControlLibrary中创建样式的每个控件。