我有一个项目,我在用户控件之间使用prism进行导航。 App.xaml有一些资源定义:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Resources/GlobalResources.xaml" />
<ResourceDictionary Source="pack://application:,,,/Resources/Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
这些在设计时应用,一切看起来都应该如此。当我运行应用程序时,资源不再应用。密钥引用的资源工作正常(例如BoolToVisConverter),但忽略应用于控件类型的资源。
重要
在问题的最后一句中做出的假设是错误
在运行时没有被忽略 - 在设计时被忽略。
答案 0 :(得分:0)
调查问题后,它与合并的词典无关,也与运行时未应用的资源无关。
问题出现在TextBlock的样式定义中:
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="2,2,3,2" />
</Style>
此样式在设计时将被忽略,但在运行时应用 - 从而导致不同的布局。
为资源或其他任何内容添加显式密钥不是必需的。
出于测试目的,如果设计被应用或者只是添加一些愚蠢的文字颜色或类似的东西 - 如果我早点完成,我会很快发现问题。