情況:與App.xaml中
錯誤在Silverlight 4 + PRISM當自定義樣式應用
「殼牌」項目,並在樣式資源字典/ Default.xaml有這樣有趣的部分:
Default.xmal
<ResourceDictionary
<Style x:Key="StandardTextBox" TargetType="TextBox">
...
</Style>
</ResourceDictionary
的App.xaml
<Application>
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles/Default.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
在模塊工程中的T I已經有了一個形式:
<TextBox Style="{StaticResource StandardTextBox}" />
在運行時,我得到了臭名昭著的「錯誤HRESULT E_FAIL已經從COM組件的調用返回。」例外。有趣的是在設計階段,在VS中,風格在設計模式中應用得很好。 (以及VS.Net如何知道Shell項目中的App.xaml中有一個資源 - 模塊項目AT ALL沒有引用該資源 - 這令人莫名其妙...但我離題)
我的總體目標是在Shell項目中將資源定義在與App.xaml分開的文件中,並使樣式在模塊項目中本質上應用。
更新:是的,我完全在錯誤的戰爭道路上。 Blend生成的TextBox樣式引用ValidationToolTip的另一種樣式。未能包括這將導致上述問題。不幸的是,錯誤消息是非常沒有幫助的,VS中的下劃線下劃線在XAML定義中間深處並且偏離右側時很容易被忽略。活到老,學到老。