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

WPF程序给按钮增加不同状态的图片

首先我们在资源里添加几个图片,Up,Over和Down状态。
然后我们创建一个Style。默认我们的背景设置成Up

然后在Triggers里添加代码,当Property:IsMouseOver为True的时候更换成Over;当Property:IsPressed为True的时候更换成Down;

这样就可以了。代码如下:

<Window.Resources><ImageBrush  x:Key="btnCloseUp" ImageSource="/source/guanbi.png"></ImageBrush><ImageBrush  x:Key="btnCloseOver" ImageSource="/source/guanbi1.png"></ImageBrush><ImageBrush  x:Key="btnCloseDown" ImageSource="/source/guanbi1 1.png"></ImageBrush><Style x:Key="btnCloseStyle" TargetType="{x:Type Button}"><Setter Property="Background" Value="{StaticResource btnCloseUp}"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type Button}"><Border x:Name="button"BorderThickness="0"Background="{TemplateBinding Background}"SnapsToDevicePixels="True" IsEnabled="False"></Border><ControlTemplate.Triggers><Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" TargetName="button" Value="{StaticResource btnCloseOver}"></Setter></Trigger><Trigger Property="IsPressed"  Value="True"><Setter Property="Background" TargetName="button" Value="{StaticResource btnCloseDown}"></Setter></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style></Window.Resources>

当然如果需要不可用的时候显示成灰色,可以添加其他的状态:

<Trigger Property="IsEnabled"  Value="False"><Setter Property="Background" TargetName="button" Value="{StaticResource btnUpdateImgDisable}"></Setter>
</Trigger>

效果如图:
请添加图片描述

相关文章:

WPF程序给按钮增加不同状态的图片

首先我们在资源里添加几个图片&#xff0c;Up&#xff0c;Over和Down状态。 然后我们创建一个Style。默认我们的背景设置成Up 然后在Triggers里添加代码&#xff0c;当Property&#xff1a;IsMouseOver为True的时候更换成Over&#xff1b;当Property&#xff1a;IsPressed为Tr…...

Java编程陷阱(三)

陷阱11:不要使用StringBuffer类来拼接字符串 StringBuffer是Java中的一个类,它可以表示一个可变的字符串,也就是可以对字符串进行修改和追加的操作,比如使用append或insert方法来拼接字符串。有时候,我们需要使用StringBuffer类来拼接字符串,比如在循环中动态地构建一个字…...

数据仓库相关

​在阿里巴巴的数据体系中&#xff0c;我们建议将数据仓库分为三层&#xff0c;自下而上为&#xff1a;数据引入层&#xff08;ODS&#xff0c;Operation Data Store&#xff09;、数据公共层&#xff08;CDM&#xff0c;Common Data Model&#xff09;和数据应用层&#xff08…...

SpringBoot学习笔记-创建个人中心页面(下)

笔记内容转载自 AcWing 的 SpringBoot 框架课讲义&#xff0c;课程链接&#xff1a;AcWing SpringBoot 框架课。 CONTENTS 1. 实现个人中心页面2. POJO时区修改3. 集成代码编辑器 本节实现个人中心的前端页面&#xff0c;用户能够查看自己的 Bot 信息&#xff0c;并能创建、修改…...

电子秤方案:做一个宠物勺方案设计

养宠物是一件费心劳力的事情&#xff0c;但同时也是能够给你带来快乐和幸福感的事情。就是有时候会怕宠物毫无征兆地生病令人措手不及&#xff0c;所以电子秤方案设计鼎盛合科技分享一个小方案&#xff0c;能够及时了解到宠物的身体状况问题。 蓝牙宠物勺是一种具有记录和称重…...

Debezium-Embedded 实时监控MySQL数据变更

1.Debezium-Embedded 简介 Debezium连接器的操作通常是将它们部署到Kafka Connect服务&#xff0c;并配置一个或多个连接器来监控上游数据库&#xff0c;并为它们在上游数据库中看到的所有更改生成数据更改事件。这些数据更改事件被写入Kafka&#xff0c;在那里它们可以被许多不…...

计算机是如何工作的(简单介绍)

目录 一、冯诺依曼体系 二、CPU基本流程工作 逻辑⻔ 电⼦开关——机械继电器(Mechanical Relay) ⻔电路(Gate Circuit) 算术逻辑单元 ALU&#xff08;Arithmetic & Logic Unit&#xff09; 算术单元(ArithmeticUnit) 逻辑单元(Logic Unit) ALU 符号 寄存器(Regis…...

JSP基本表单和Request对象使用例子

表单的jsp&#xff1b; <%page contentType"text/html;charsetgbk" pageEncoding"UTF-8"%> <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><titl…...

【Redux】Redux 基本使用

1. Redux 快速上手 Redux 是 React 最常用的集中状态管理工具&#xff0c;类似于Vue中的Pinia&#xff08;Vuex&#xff09;&#xff0c;可以独立于框架运行。 <button id"decrement">-</button> <span id"count">0</span> <…...

多线程Thread(初阶一:认识线程)

目录 一、引用线程的原因 二、线程的概念 三、进程和线程的区别 四、多线程编程 一、引用线程的原因 多任务操作系统&#xff0c;希望系统能同时运行多个任务。所以会涉及到进程&#xff0c;需要对进程进行管理、调度等。 而单任务操作系统&#xff0c;就完全不涉及到进程…...

系列五、GC垃圾回收【四大垃圾算法-复制算法】

一、堆的内存组成 二、复制算法 2.1、发生位置 复制算法主要发生在新生代&#xff0c;发生在新生代的垃圾回收也被叫做Minor GC。 2.2、 Minor GC的过程 复制>清空》交换 1、eden、from区中的对象复制到to区&#xff0c;年龄1 首先&#xff0c;当eden区满的时候会触发第一…...

LeetCode(24)文本左右对齐【数组/字符串】【困难】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 文本左右对齐 1.题目 给定一个单词数组 words 和一个长度 maxWidth &#xff0c;重新排版单词&#xff0c;使其成为每行恰好有 maxWidth 个字符&#xff0c;且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单…...

Spring-Spring之事务底层源码解析

EnableTransactionManagement工作原理 开启Spring事务本质上就是增加了一个Advisor&#xff0c;但我们使用EnableTransactionManagement注解来开启Spring事务是&#xff0c;该注解代理的功能就是向Spring容器中添加了两个Bean&#xff1a; AutoProxyRegistrarProxyTransactio…...

后端面经学习自测(三)

文章目录 1、ArrayList和Linkedlist区别&#xff1f;2、ArrayList扩容机制&#xff1f;3、ArrayList和Linkedlist分别能做什么场景&#xff1f;4、事务特性&#xff1f;MySQL事务Redis事务Spring事务5、在Spring中事务失效的场景&#xff1f;6、Java泛型&#xff1f;7、泛型擦除…...

力扣labuladong——一刷day40

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣341. 扁平化嵌套列表迭代器 前言 N叉树的结构&#xff0c;构造迭代器 一、力扣341. 扁平化嵌套列表迭代器 /*** // This is the interface that allo…...

在VS Code中使用VIM

文章目录 安装和基本使用设置 安装和基本使用 VIM是VS Code的强大对手&#xff0c;其简化版本VI是Linux内置的文本编辑器&#xff0c;堪称VS Code问世之前最流行的编辑器&#xff0c;也是VS Code问世之后&#xff0c;我仍在使用的编辑器。 对VIM无法割舍的原因有二&#xff0…...

注解【元数据,自定义注解等概念详解】(超简单的好吧)

注解的理解与使用 注解的释义元数据的含义基础阶段常见的注解注解的作用&#xff08;包括但不限于&#xff09;教你读懂注解内部代码内容五种元注解尝试解读简单注解我当时的疑惑点 自定义注解自定义注解举例 注解的原理总结 注解的释义 我们都知道注释是拿来给程序员看的&…...

vue-pdf在vue框架中的使用

在components目录下新建PdfViewer/index.vue vue-pdf版本为4.3.0 <template><div :id"containerId" v-if"hasProps" class"container"><div class"right-btn"><div class"pageNum"><input v-m…...

Wordpress页面生成器:Elementor 插件制作网站页面教程(图文完整)

本文来教大家怎么使用Wordpress Elementor页面编辑器插件来自由创建我们的网页内容。很多同学在面对建站的时候,一开始都是热血沸腾信心满满的,等到实际上手的时候就会发现有很多问题都是无法解决的,希望本篇Elementor插件使用指南能够帮助到你。 Wordpress Elementor页面编…...

完全随机设计的方差分析

一、说明 实验设计在科学研究中发挥着至关重要的作用&#xff0c;使研究人员能够从数据中得出有意义的结论。一种常见的实验设计是完全随机设计&#xff08;CRD&#xff09;&#xff0c;其特征是将实验单元随机分配到治疗组。CRD 的方差分析 (ANOVA) 是一种统计技术&#xff0c…...

从FinFET到ESD设计:2013年半导体产业技术演进与工程实践启示

1. 行业动态聚焦&#xff1a;2013年4月&#xff0c;EDA/IP领域的那些关键信号作为一名在芯片设计行业摸爬滚打了十几年的老兵&#xff0c;我习惯每周花点时间翻翻行业新闻&#xff0c;不是为了追热点&#xff0c;而是想从那些看似零散的公告里&#xff0c;嗅出技术演进和产业协…...

别再只用AES了!手把手教你用Java BouncyCastle库实现SM4国密加密(附完整工具类)

国密算法实战&#xff1a;用Java BouncyCastle实现SM4加密的完整指南 在数据安全领域&#xff0c;国际通用算法长期占据主导地位&#xff0c;但随着技术自主可控需求的提升&#xff0c;国产密码算法正成为企业级应用的新选择。SM4作为我国商用密码标准体系中的重要对称加密算法…...

多源视频流时空配准,搭建跨摄像机一体化轨迹推演计算平台

多源视频流时空配准&#xff0c;搭建跨摄像机一体化轨迹推演计算平台在数字孪生与视频孪生全域空间智能感知的建设进程中&#xff0c;各类管控场景普遍部署多品牌、多焦距、多布设姿态的异构摄像设备&#xff0c;衍生出大量编码格式各异、传输时延参差、时钟相位错位的多源异步…...

JESD204B协议在5G MIMO基站中的关键应用与优化

1. JESD204B协议在MIMO基站中的核心价值 现代无线通信系统正经历着从传统单天线向大规模MIMO&#xff08;多输入多输出&#xff09;架构的转型。作为5G基站的核心技术&#xff0c;Massive MIMO系统通常需要处理64T64R甚至更大规模的天线阵列&#xff0c;这对数据转换器&#xf…...

Seelen UI定制化桌面

链接&#xff1a;https://pan.quark.cn/s/0d0312d1a6d1Seelen UI是适用于 Windows 10/11的第一个基于 Web 的完全可定制的桌面环境&#xff0c;提供了一种直观而强大的方式来管理和自定义您的工作区。提升工作效率与体验&#xff0c;满足不同用户的需求。...

别再死记PCA步骤了!用Python手推一遍协方差矩阵与特征值,真正搞懂降维本质

从协方差矩阵到特征值分解&#xff1a;用Python彻底理解PCA的数学本质 主成分分析&#xff08;PCA&#xff09;作为数据降维的经典算法&#xff0c;在实际应用中常被简化为"标准化→协方差矩阵→特征分解→降维"的固定流程。但真正理解其数学本质的开发者却寥寥无几—…...

Z轴传感技术在大屏触控中的应用与优化

1. Z轴传感技术&#xff1a;重新定义大屏触控的物理维度十年前我第一次接触银行ATM的触控屏时&#xff0c;那种生硬的点击反馈让人总想多戳几下确认操作是否成功。如今站在商场里观察用户操作自助点餐机&#xff0c;类似的迟疑依然普遍存在——这正是传统二维触控的体验天花板。…...

终极指南:用ContextMenuManager彻底解决Windows右键菜单混乱问题

终极指南&#xff1a;用ContextMenuManager彻底解决Windows右键菜单混乱问题 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾因Windows右键菜单过于臃肿…...

全栈开发新范式:Vibe-Stack集成技术栈实战解析

1. 项目概述与核心价值 最近在探索全栈开发的新范式时&#xff0c;我注意到了 pastropsucez/vibe-stack 这个项目。乍一看这个名字&#xff0c;你可能会觉得有点“玄学”&#xff0c;但深入探究后&#xff0c;我发现它其实是一个高度集成、开箱即用的现代Web应用开发栈。简单…...

从收音机到5G:OFDM技术的前世今生,以及它为何成为Wi-Fi和5GNR的基石

从收音机到5G&#xff1a;OFDM技术的前世今生&#xff0c;以及它为何成为Wi-Fi和5GNR的基石 想象一下&#xff0c;你正用手机流畅播放4K视频&#xff0c;同时下载大文件——这背后是一套诞生于上世纪60年代的技术在支撑。OFDM&#xff08;正交频分复用&#xff09;的传奇之处在…...