问题描述
我利用模板自定义了按钮,这些按钮的样式都相同只是背景图片不一样,但我只会在模板中定义一张,要不同的按钮对应不同的图片应该怎么做呐?求解答,多谢<UserControlx:Class="WpfApplication6.LeftButton"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"mc:Ignorable="d"d:DesignHeight="300"d:DesignWidth="300"><UserControl.Resources><Stylex:Key="ListLeftButton"TargetType="{x:TypeButton}"><SetterProperty="Template"><Setter.Value><ControlTemplateTargetType="{x:TypeButton}"><Grid><Rectanglex:Name="rectangle"><Rectangle.Fill><ImageBrushImageSource="skin/01228[46x62x8BPP].png"/></Rectangle.Fill></Rectangle></Grid><ControlTemplate.Triggers><TriggerProperty="IsFocused"Value="True"><SetterProperty="Fill"TargetName="rectangle"><Setter.Value><ImageBrushImageSource="skin/01227[46x62x8BPP].png"/></Setter.Value></Setter></Trigger><TriggerProperty="IsDefaulted"Value="True"/><TriggerProperty="IsMouseOver"Value="True"/><TriggerProperty="IsPressed"Value="True"><SetterProperty="Fill"TargetName="rectangle"><Setter.Value><ImageBrushImageSource="skin/01226[46x62x8BPP].png"></ImageBrush></Setter.Value></Setter></Trigger><TriggerProperty="IsEnabled"Value="False"/></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style></UserControl.Resources><StackPanel><ButtonStyle="{StaticResourceListLeftButton}"Width="50"Height="60"/><ButtonStyle="{StaticResourceListLeftButton}"Width="50"Height="60"/><ButtonStyle="{StaticResourceListLeftButton}"Width="50"Height="60"/><ButtonStyle="{StaticResourceListLeftButton}"Width="50"Height="60"/><ButtonStyle="{StaticResourceListLeftButton}"Width="50"Height="60"/><ButtonStyle="{StaticResourceListLeftButton}"Width="50"Height="60"/></StackPanel></UserControl>
效果如图。
解决方案
解决方案二:
使用Converter转换类,给定一个标示区分。比如,每个Button设置不同Tag值。在Converter类里根据不同的Tag返回不同的图片路径。