当前位置: 首页 > news >正文

WPF:自定义按钮模板

1.WPF:自定义按钮模板

自定义封装的按钮属性可写在<Button.Template>中
Background="{TemplateBinding Background}"中的TemplateBinding代表使用按钮本身所使用的背景颜色 不在样式内修改背景颜色
例如:

 <Button Width="300" Height="100" Content="自定义按钮" Background="Bisque" FontSize="23" Foreground="Orchid"><Button.Template><ControlTemplate TargetType="{x:Type Button}">//代表指向的button按钮<Border Background="{TemplateBinding Background}"  BorderBrush="Black" BorderThickness="4" CornerRadius="10"><ContentPresenter HorizontalAlignment="Center" Content="14321412535" VerticalAlignment="Center"></ContentPresenter>    </Border></ControlTemplate></Button.Template></Button>
2.通过事件处理改变属性

1.首先先定义按钮名称 <Border x:Name=“button”
2.在 <ControlTemplate.Triggers>属性中写 <Trigger Property=“IsMouseOver” value="True>写入通过什么触发事件
3. <Setter TargetName="button" Property="Background" Value="black"/>根据TargetName找到对应的属性,并将其改变Property

 <Button.Template><ControlTemplate TargetType="{x:Type Button}"><Border x:Name="button" Background="{TemplateBinding Background}"  BorderBrush="Black" BorderThickness="4" CornerRadius="10"><TextBlock Text="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/></Border><ControlTemplate.Triggers><Trigger Property="IsMouseOver" Value="true"><Setter TargetName="button" Property="Background" Value="black"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Button.Template>

相关文章:

  • python基础语法(十一)
  • 研发效能认证学员作品:快速进行持续集成应用实践丨IDCF
  • 使用pycharm远程连接到Linux服务器进行开发
  • ES6中数值扩展
  • 论文-分布式-并发控制-并发控制问题的解决方案
  • 【面试经典150 | 栈】最小栈
  • 2023辽宁省赛E
  • 【QT】其他常用控件1
  • 【网络协议】聊聊UDP协议
  • 从InnoDB索引的数据结构,去理解索引
  • 调试记录 单片机GD32F103C8T6(兆易创新) 程序烧写完成但是没有现象 (自己做的板子)
  • Netty优化-rpc
  • idea 提升效率的常用快捷键 汇总
  • Kafka KRaft模式探索
  • 帆软report JS实现填报控件只能填写一次
  • #Java异常处理
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 10个最佳ES6特性 ES7与ES8的特性
  • Create React App 使用
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java 网络编程(2):UDP 的使用
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • js数组之filter
  • 大数据与云计算学习:数据分析(二)
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 精彩代码 vue.js
  • 深度解析利用ES6进行Promise封装总结
  • 你对linux中grep命令知道多少?
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • #{}和${}的区别?
  • #传输# #传输数据判断#
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (1)(1.11) SiK Radio v2(一)
  • (zt)最盛行的警世狂言(爆笑)
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (过滤器)Filter和(监听器)listener
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (三分钟)速览传统边缘检测算子
  • (转)memcache、redis缓存
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .gitignore文件---让git自动忽略指定文件
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net6 webapi log4net完整配置使用流程
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .Net8 Blazor 尝鲜
  • @Autowired和@Resource装配
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ Linux ] git工具的基本使用(仓库的构建,提交)