组合常用的 WPF 控件以进行重用

Combining commonly used WPF-Controls for Reuse

我一遍又一遍地重复相同的代码:

<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
    <StackPanel Orientation="Vertical">
        <Label Content="Content 1" VerticalAlignment="Center" HorizontalAlignment="Center"/>
        <ComboBox Style="{StaticResource CustomComboBox}"/>
    </StackPanel>
</StackPanel>

它始终是输入控件(文本框、组合框...)和标签的某种组合。

我已经搜索了 this 线程,但不幸的是第二个答案依赖于绑定;我想在里面定义标签的内容和 ComboBox-Bindings,例如内容控件。

我的尝试看起来像这样(在 MainWindow.xaml 内):

<Window.Resources>
    
    <ControlTemplate x:Key="ComboWithHeader" TargetType="ContentControl">
        <StackPanel Orientation="Vertical">
            <Label Width="120" Height="25" Content="{TemplateBinding Content}"/> 
            <ComboBox Width="120" Height="25"/>
        </StackPanel>
    </ControlTemplate>
    
</Window.Resources>

<Grid>
    <ContentControl Content="My Header" Template="{StaticResource ComboWithHeader}"/>
    
</Grid>

但是,我无法设置内容,看起来也不太吸引人。 ContentControl占满Window,Content不可见

A ContentControl 应该使用 ContentTemplate:

<Window.Resources>

    <DataTemplate x:Key="ComboWithHeader">
        <StackPanel Orientation="Vertical">
            <Label Width="120" Height="25" Content="{TemplateBinding Content}"/>
            <ComboBox Width="120" Height="25"/>
        </StackPanel>
    </DataTemplate>

</Window.Resources>

<Grid>
    <ContentControl Content="My Header" ContentTemplate="{StaticResource ComboWithHeader}"/>
</Grid>