设计版面与运行时布局不同

时间:2015-03-15 14:53:55

标签: c# wpf user-controls

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

重要
在问题的最后一句中做出的假设是错误 在运行时没有被忽略 - 在设计时被忽略。

1 个答案:

答案 0 :(得分:0)

调查问题后,它与合并的词典无关,也与运行时未应用的资源无关。
问题出现在TextBlock的样式定义中:

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

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

为资源或其他任何内容添加显式密钥不是必需的

出于测试目的,如果设计被应用或者只是添加一些愚蠢的文字颜色或类似的东西 - 如果我早点完成,我会很快发现问题。