如何在实际代码中使用它

概括我们上面已经证明的内容:单个事物包含 半空白 的固定边距,并且它们所容纳的容器应该具有 半空白填充。你可以在应用程序资源字典中应用这些样式,然后你甚至不需要在单个项目上提及它们。以下是你可以定义 HalfTheWhiteSpace 的方法:

<system:Double x:Key="DefaultMarginSize">2</system:Double>
<Thickness x:Key="HalfTheWhiteSpace" Left="{StaticResource DefaultMarginSize}" Top="{StaticResource DefaultMarginSize}" Right="{StaticResource DefaultMarginSize}" Bottom="{StaticResource DefaultMarginSize}"/>

然后我可以定义一个基本样式来基于我的其他控件样式:(这也可以包含你的默认 FontFamily,FontSize 等等)

<Style x:Key="BaseStyle" TargetType="{x:Type Control}">
    <Setter Property="Margin" Value="{StaticResource HalfTheWhiteSpace}"/>
</Style>

然后我可以为 TextBox 定义我的默认样式以使用此边距:

<Style TargetType="TextBox" BasedOn="{StaticResource BaseStyle}"/>

我可以为 DatePickers,Labels 等等做任何事情(可能在容器中保存的任何东西)。小心像这样的 TextBlock 样式……该控件在很多控件内部使用。我建议你创建自己的控件,它只是从 TextBlock 派生。你可以风格的 TextBlock 使用默认的边距; 你应该用你的,只要你明确地使用一个 TextBlock 在 XAML 的 TextBlock。

你可以使用类似的方法将填充应用于常见容器(例如 ScrollViewer,Border 等)。

完成此操作后,大多数控件都不需要边距和填充 - 你只需要在有意偏离此设计原则的位置指定值。