markf78
markf78

Reputation: 627

using control templates that vary only slightly

i have the following control template:

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

and here's one button using the control template:

<Button Height="40" HorizontalAlignment="Left" Margin="250,334,0,0" Name="ejf" VerticalAlignment="Top" Width="106" Template="{StaticResource GrayButton}" Click="execJournalPrgm" IsEnabled="False"/>

I need roughly 4-8 more buttons that vary only by text name/color... what is the best way to do this without repeating the control template definition 4-8 times?

any help would be greatly appreciated.

Upvotes: 0

Views: 55

Answers (1)

brunnerh
brunnerh

Reputation: 184516

One way to do this is by making a custom control (by inheriting from Button) and setting up all the necessary properties which should be bound in the default template. Then you only need to create instances of that control and set those properties instead of changing anything in the template.

Upvotes: 1

Related Questions