2011-03-10 64 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