2011-03-10 68 views
0

情況:與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定義中間深處並且偏離右側時很容易被忽略。活到老,學到老。

回答

0

真正的問題是沒有包含另一個引用的樣式。見this