2011-10-27 39 views
0

我有以下的控制模板控制模板:使用变化只是稍微

<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)和设置都应该在默认模板的约束需要的属性。然后,您只需创建该控件的实例并设置这些属性,而不是更改模板中的任何内容。