情况:与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定义中间深处并且偏离右侧时很容易被忽略。活到老,学到老。