используя шаблоны управления, которые отличаются незначительно - PullRequest
0 голосов
/ 28 октября 2011

У меня есть следующий шаблон элемента управления:

    <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 раз?

любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 28 октября 2011

Один из способов сделать это - создать пользовательский элемент управления (наследуя от Button) и настроить все необходимые свойства, которые должны быть связаны в шаблоне по умолчанию.Тогда вам нужно только создать экземпляры этого элемента управления и установить эти свойства вместо того, чтобы что-либо менять в шаблоне.

...