【WPF求助】 按钮背景图片ImageBrush问题,如何去除我下面代码的重复的代码? 5
问题描述:现在我有8个按钮,我需要给这八个按钮赋不同的背景图片ImageBrush,鼠标经过时改变背景图片;资源:项目中建了一个Images文件夹,下面有16张图片:01...
问题描述:现在我有8个按钮,我需要给这八个按钮赋不同的背景图片ImageBrush,鼠标经过时改变背景图片;
资源:项目中建了一个Images文件夹,下面有16张图片:01.jpg 02.jpg 03.jpg ....(鼠标未经过时的图片) a1.jpg a2.jpg a3.jpg ....(鼠标经过时按钮显示的图片) 16张图片各不相同;
我的代码:
<Button name="button1" Width="50" Height="50">
<Style TargetType = "Button">
<Setter Property="Background">
<Setter.Value>
<ImageBrush ImageSource="\Images\01.jpg" />
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" >
<Setter.Value>
<ImageBrush ImageSource="\Images\a1.jpg" />
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button>
<Button name="button2" Width="50" Height="50">
<Style TargetType = "Button">
<Setter Property="Background">
<Setter.Value>
<ImageBrush ImageSource="\Images\02.jpg" />
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" >
<Setter.Value>
<ImageBrush ImageSource="\Images\a2.jpg" />
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button>
下面的6个按钮也是这样的代码,由于字数限制,这里写不上了。。。
现在,所有的按钮都是01.jpg,鼠标经过按钮时,所有的按钮都改变为a1.jpg ,求教,求教~~~~ 展开
资源:项目中建了一个Images文件夹,下面有16张图片:01.jpg 02.jpg 03.jpg ....(鼠标未经过时的图片) a1.jpg a2.jpg a3.jpg ....(鼠标经过时按钮显示的图片) 16张图片各不相同;
我的代码:
<Button name="button1" Width="50" Height="50">
<Style TargetType = "Button">
<Setter Property="Background">
<Setter.Value>
<ImageBrush ImageSource="\Images\01.jpg" />
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" >
<Setter.Value>
<ImageBrush ImageSource="\Images\a1.jpg" />
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button>
<Button name="button2" Width="50" Height="50">
<Style TargetType = "Button">
<Setter Property="Background">
<Setter.Value>
<ImageBrush ImageSource="\Images\02.jpg" />
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" >
<Setter.Value>
<ImageBrush ImageSource="\Images\a2.jpg" />
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button>
下面的6个按钮也是这样的代码,由于字数限制,这里写不上了。。。
现在,所有的按钮都是01.jpg,鼠标经过按钮时,所有的按钮都改变为a1.jpg ,求教,求教~~~~ 展开
1个回答
展开全部
<Window.Resources>
<Style x:key="myButtonStyle" TargetType = "Button">
<Setter Property="Background">
<Setter.Value>
<ImageBrush ImageSource="\Images\02.jpg" />
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" >
<Setter.Value>
<ImageBrush ImageSource="\Images\a2.jpg" />
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
然后在所有的Button里都可以引用这个样式
<Button name="button1" Style={StaticResource myButtonStyle} Width="50" Height="50"></Button>
<Button name="button2" Style={StaticResource myButtonStyle} Width="50" Height="50"></Button>
<Button name="button3" Style={StaticResource myButtonStyle} Width="50" Height="50"></Button>
......
追问
这样不行吧? 因为这样的话所有的Button都是同一张图片了,鼠标经过时也是用的同一张图片,以上面那段程序来看的话,所有的Button背景图片都为02.jpg,鼠标经过时所有的Button背景图片都为a2.jpg
追答
哦,不好意思,没仔细看你的代码,我以为所有按钮都一样的。你这样需求的话没什么特别的好方法了。
稍微精简点,可以配所有按钮的Tag为类似"01-a1","02-a2"这样的,然后公用一个mouse事件,去截取tag来换图片。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询