【WPF】使用 XAML 的 Trigger 系统实现三态按钮
2024-08-31 02:54:32
利用 WPF 的 Trigger 系统,也可以很简单的只使用xmal实现三态按钮。在Window或UserControl的资源中声明按钮的style并加入触发功能。使用的时候直接在button里复写style就可以了,废话不多说,直接上代码:
<UserControl.Resources>
<Style x:Key="threeStateButton" TargetType="{x:Type Button}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<StackPanel Orientation="Horizontal" >
<Image Name="ImgBtnBg3"
Source="Skins/Default/action_normal.png" />
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source"
Value="Skins/Default/action_selected.png"
TargetName="ImgBtnBg3"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Source"
Value="Skins/Default/action_active.png"
TargetName="ImgBtnBg3"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Source"
Value="Skins/Default/action_normal.png"
TargetName="ImgBtnBg3"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style> </UserControl.Resources>
使用时在button中引用:
<Button x:Name="m_btn" Content="Button" HorizontalAlignment="Center" Width="60" Height="60"
VerticalAlignment="Center" Style="{StaticResource threeStateButton}"/>
最新文章
- socket编程-java
- SOA的浅析
- barabasilab-networkScience学习笔记5- Barab&#225;si-Albert 模型
- 更改电脑与eclpse热键冲突
- express cookie-session解惑
- [Leetcode][020] Valid Parentheses (Java)
- angular中的cookie读写
- R绘图字体解决方案(转)
- Spring常用注解介绍【经典总结】
- LANMP On CentOS 6
- Struts优缺点
- 当锚点遇到fixed
- BDD中数据的类型及处理方法(python)
- 谈下mysql预处理基础
- 网易2018校招内推编程题-堆棋子-C++实现
- Mysql相关技术细节整理
- 数据导出之winfrom导出word(一)
- 添加Image Stream(转)参考 开源容器云OpenShift
- SqlServer日期时间函数
- Mac OS X 在 Finder 里快速创建文本文件
热门文章
- c++ map迭代器
- Spring Web MVC处理流程
- 21.使用rescoring机制优化近似匹配搜索性能
- linux - redis基础
- seminar information (Email template)
- linux修改mysql表结构
- TSP服务商
- 学习webpack过程并上传到github
- android程序在调试时出现了套接字异常“java.net.SocketException: Permission denied”该如何解决
- [Android L or M ]解除SwitchPreference与Preference的绑定事件