2012-09-21 133 views
1

我试图设置根Control元素的风格,我的XAML在外部ResourceDictionary定义的StaticResource,但是我收到的错误:设置样式的静态资源的根控制元素

The resource "MyControlStyle" could not be resolved.

<UserControl 
    ... 
    > 

    <UserControl.Resources> 
     <ResourceDictionary Source="..\Styles\MyStyles.xaml" /> 
    </UserControl.Resources> 

    <UserControl.Style> 
     <StaticResource ResourceKey="MyControlStyle"/> 
    </UserControl.Style> 

</UserControl> 

除了设置XAML文件利用我的控制中的风格,这怎么能实现呢?我希望能够从UserControl中设置样式,以便我可以在UserControl的设计师中看到该样式的效果。

+0

您是否正在项目中使用App.xaml,并将MergedDictionaries声明指向您的资源字典以使它们可用于您正在使用的项目?您不需要在UserControl中声明您的资源字典路径来继承样式模板。 –

回答

1

您正试图对从控件的用户控件属性(本例中为样式)内定义的ResourceDictionary进行引用。资源如同一个泡泡一样工作,如果一个控件需要一个资源,那么它在它的容器资源中搜索,如果找不到那里的资源,那么搜索这个容器的父母,如果找不到它的父母搜索的话...... 直到应用程序资源,如果没有在系统资源中找到。

如果要将资源应用于用户控件,则应将其放入应用程序资源(位于App.xaml文件中)中。尝试这个。