Wpf 使用变化不大的控件模板

Wpf 使用变化不大的控件模板,wpf,controltemplate,Wpf,Controltemplate,我有以下控件模板: <ControlTemplate x:Key="GrayButton" TargetType="{x:Type Button}"> <Grid> <Image x:Name="GrayButtonImage" Source="/Server;component/Images/bg.bmp"/> <TextBlock VerticalAlignment="Cente

我有以下控件模板:

    <ControlTemplate x:Key="GrayButton" TargetType="{x:Type Button}">
        <Grid>
            <Image x:Name="GrayButtonImage" Source="/Server;component/Images/bg.bmp"/>
            <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="White" Text="{x:Static props:Resources.IDS_ABORT}"/>
        </Grid>
        <ControlTemplate.Triggers>
            <Trigger Property="IsEnabled" Value="True">
                <Setter TargetName="GrayButtonImage" Property="Source" Value="/Server;component/Images/GrayButtonOn.bmp"/>
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
                <Setter TargetName="GrayButtonImage" Property="Source" Value="/Server;component/Images/GrayButton.bmp"/>
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>
<Button Height="40" HorizontalAlignment="Left" Margin="250,334,0,0" Name="ejf" VerticalAlignment="Top" Width="106" Template="{StaticResource GrayButton}" Click="execJournalPrgm" IsEnabled="False"/>

这里有一个使用控件模板的按钮:

    <ControlTemplate x:Key="GrayButton" TargetType="{x:Type Button}">
        <Grid>
            <Image x:Name="GrayButtonImage" Source="/Server;component/Images/bg.bmp"/>
            <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="White" Text="{x:Static props:Resources.IDS_ABORT}"/>
        </Grid>
        <ControlTemplate.Triggers>
            <Trigger Property="IsEnabled" Value="True">
                <Setter TargetName="GrayButtonImage" Property="Source" Value="/Server;component/Images/GrayButtonOn.bmp"/>
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
                <Setter TargetName="GrayButtonImage" Property="Source" Value="/Server;component/Images/GrayButton.bmp"/>
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>
<Button Height="40" HorizontalAlignment="Left" Margin="250,334,0,0" Name="ejf" VerticalAlignment="Top" Width="106" Template="{StaticResource GrayButton}" Click="execJournalPrgm" IsEnabled="False"/>

我还需要大约4-8个按钮,这些按钮只因文本名称/颜色而异。。。在不重复控件模板定义4-8次的情况下执行此操作的最佳方法是什么


任何帮助都将不胜感激。

实现这一点的一种方法是创建自定义控件(通过继承
按钮)并设置所有必要的属性,这些属性应绑定到默认模板中。然后,只需创建该控件的实例并设置这些属性,而无需更改模板中的任何内容