情况:
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>
在模块项目中,我有一个表格:
<TextBox Style="{StaticResource StandardTextBox}" />
在运行时,我得到臭名昭着的“错误HRESULT E_FAIL已从调用COM组件返回。”例外。有趣的是在设计时,在VS中,风格在设计模式下应用得很好。 (以及VS.Net如何运用知道Shell项目中的App.xaml中有资源的魔力 - 模块项目没有引用它 - 令人费解......但我离题了)
我的总体目标是在Shell项目中将文件定义为与App.xaml分开的文件,并在模块项目中内置应用样式。
更新:是的,我在这里完全处于错误的战争道路上。 Blend生成的TextBox样式引用ValidationToolTip的另一种样式。不包含该将导致上述问题。不幸的是,错误信息非常无用,而且当它深入XAML定义的中间并且偏向右侧时,很容易错过VS中的波浪下划线。生活和学习。