应用自定义样式时Silverlight 4 + PRISM出错

时间:2011-03-10 18:20:47

标签: silverlight-4.0 resources prism styles resourcedictionary

情况:

带有App.xaml的“Shell”项目和Styles / 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>

在模块项目中,我有一个表格:

<TextBox Style="{StaticResource StandardTextBox}" />

在运行时,我得到臭名昭着的“错误HRESULT E_FAIL已从调用COM组件返回。”例外。有趣的是在设计时,在VS中,风格在设计模式下应用得很好。 (以及VS.Net如何运用知道Shell项目中的App.xaml中有资源的魔力 - 模块项目没有引用它 - 令人费解......但我离题了)

我的总体目标是在Shell项目中将文件定义为与App.xaml分开的文件,并在模块项目中内置应用样式。

更新:是的,我在这里完全处于错误的战争道路上。 Blend生成的TextBox样式引用ValidationToolTip的另一种样式。不包含该将导致上述问题。不幸的是,错误信息非常无用,而且当它深入XAML定义的中间并且偏向右侧时,很容易错过VS中的波浪下划线。生活和学习。

1 个答案:

答案 0 :(得分:0)

真正的问题不包括另一种引用的风格。请参阅this