2012-09-21 81 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文件中)中。嘗試這個。