设计布局不同于运行时布局

Design Layout differs from Runtime Layout

我有一个项目,我在其中使用棱镜在用户控件之间进行导航。 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),但忽略应用于控件类型的资源。

重要
题目最后一句的假设是错误的.
在 运行 时间内没有被忽略 - 在设计时被忽略。

经过调查,问题与合并字典无关,也与运行时未应用资源无关。
问题是通过 TextBlock 的样式定义出现的:

<Style TargetType="TextBlock">
    <Setter Property="Margin" Value="2,2,3,2" />
</Style>

此样式将在设计时被忽略,但会在运行时应用 - 从而导致不同的布局。

为资源或任何其他内容添加显式键没有必要

出于测试目的,如果应用或不应用设计,只需添加一些愚蠢的文本颜色或类似的东西 - 如果我早点这样做,我会很快发现问题。