在WPF中使用最小样式的原始容器的推荐元素是什么?

时间:2019-02-02 19:57:08

标签: wpf xaml

我经常发现需要将UI元素(例如按钮或文本块)嵌套在可以用背景颜色,边距和填充进行样式设置的框中。

有多种方式在WPF做到这一点。即使网格可以作为一个简单的容器。但是我想知道为此目的推荐使用的go-to元素是什么?如前所述,我最常见的需求是支持背景颜色,边距和填充的元素。

1 个答案:

答案 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>