我经常发现需要将UI元素(例如按钮或文本块)嵌套在可以用背景颜色,边距和填充进行样式设置的框中。
有多种方式在WPF做到这一点。即使网格可以作为一个简单的容器。但是我想知道为此目的推荐使用的go-to元素是什么?如前所述,我最常见的需求是支持背景颜色,边距和填充的元素。
答案 0 :(得分:0)
绝对边界。一般的答案是“最简单的控制,你可以逃脱”,这将取决于您的特定需求。 (有一个相当不错的图表显示了其中的大多数here)。最简单的控制的东西,有内容是ContentControl中,但没有实现在其模板的背景。层次结构中的下一个控件是UserControl,通常用于子类化,但是如果您查看的是ControlTemplate,则它只是与ContentPresenter的边界:
<ControlTemplate TargetType="{x:Type UserControl}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
<ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</ControlTemplate>