我创建了一个自定义按钮。我需要更多具有不同背景的相同风格的按钮。可以通过为每个按钮创建模板来完成此操作。但这消除了代码的可重用性。是否可以为所有按钮应用相同的模板,但在背景等属性中进行一些更改。 这是我的代码。
<ControlTemplate x:Key="custom-button" TargetType="Button">
<Grid x:Name="btn_image">
<Image Name="btnBackground" Source="Media/Knob Red.png"></Image>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsRunning}" Value="false">
<Setter TargetName="btnBackground" Property="Source" Value="Media/Knob Play.png"></Setter>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
这是我应用模板的按钮。
<Button Name="start" Template="{StaticResource custom-button}" HorizontalAlignment="Left" Margin="147,67,0,0" VerticalAlignment="Top" Width="37" Height="30" Click="Start_Click">
</Button>
现在我需要将模板用于更多按钮,但它们应该具有不同的背景。要改变什么。尝试了很多方法,但没有一点运气。
这些是我的其他按钮。
<Button Template="{StaticResource custom-button}" Name="reset" HorizontalAlignment="Left" Margin="194,67,0,0" VerticalAlignment="Top" Width="37" Height="30" Click="Reset_Click">
<Button.Background>
<ImageBrush ImageSource="Media/Knob Refresh.png"/>
</Button.Background>
</Button>
<Button Template="{StaticResource custom-button}" x:Name="close" HorizontalAlignment="Left" Margin="236,0,0,0" VerticalAlignment="Top" Width="20" Height="18" RenderTransformOrigin="1.771,-1.3" Click="Close">
<Button.Background>
<ImageBrush ImageSource="Media/Knob Purple.png"/>
</Button.Background>
</Button>
答案 0 :(得分:0)
您可以在自定义控件中执行以下操作:
<Image Name="btnBackground" Source="{TemplateBinding Background}"></Image>
在按钮声明中,您可以将图像作为背景属性传递。