设计布局不同于运行时布局
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>
此样式将在设计时被忽略,但会在运行时应用 - 从而导致不同的布局。
为资源或任何其他内容添加显式键没有必要。
出于测试目的,如果应用或不应用设计,只需添加一些愚蠢的文本颜色或类似的东西 - 如果我早点这样做,我会很快发现问题。
我有一个项目,我在其中使用棱镜在用户控件之间进行导航。 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>
此样式将在设计时被忽略,但会在运行时应用 - 从而导致不同的布局。
为资源或任何其他内容添加显式键没有必要。
出于测试目的,如果应用或不应用设计,只需添加一些愚蠢的文本颜色或类似的东西 - 如果我早点这样做,我会很快发现问题。