#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="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:
Один из способов сделать это — создать пользовательский элемент управления (путем наследования от Button
) и настроить все необходимые свойства, которые должны быть привязаны к шаблону по умолчанию. Тогда вам нужно только создать экземпляры этого элемента управления и установить эти свойства вместо того, чтобы что-либо менять в шаблоне.