WPF 自定义一个Button控件,通过设置3个张图片,实现:平常状态、鼠标移入、鼠标按下时分别显示3张图片
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 自定义一个Button控件,通过设置3个张图片,实现:平常状态、鼠标移入、鼠标按下时分别显示3张图片相关的知识,希望对你有一定的参考价值。
使用时这么写:
<local:MyButton Normal="images/normal.png" High="images/high.png" Down="images/down.png"/>
例如你要设置鼠标按下时字体的大小
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="FontSize" Value="20"/>
</Trigger>
</Style.Triggers>
按照你的目标,你首先要修改button的模板。在button的template里加
<Grid>
<Image Name="img1" Source="/WpfApplication1;component/Image/1.jpg" Visibility="Visible"/>
<Image Name="img2" Source="/WpfApplication1;component/Image/2.jpg" Visibility="Collapsed"/>
<Image Name="img3" Source="/WpfApplication1;component/Image/3.jpg" Visibility="Collapsed"/>
</Grid>
然后修改相应的trigger即可。
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="img1" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="img2" Property="Visibility" Value="Visible"/>
<Setter TargetName="img3" Property="Visibility" Value="Collapsed"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="img1" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="img2" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="img3" Property="Visibility" Value="Visible"/>
</Trigger> 参考技术A 使用这种写法的话,就不是定义样式和触发器的作法了,你得继承一下Button,然后定义依赖项属性。
代码就不在这里写了,麻烦,百度Hi上说吧 参考技术B 不需要自定义控件,那是winform的做法。
使用style和触发器
或者修改控件模板。
以上是关于WPF 自定义一个Button控件,通过设置3个张图片,实现:平常状态、鼠标移入、鼠标按下时分别显示3张图片的主要内容,如果未能解决你的问题,请参考以下文章