Wpf-自定义控件波纹Button

使用用户控件,继承Button

前端代码

<Button x:Class="WpfApp1.SuperButton"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:local="clr-namespace:WpfApp1"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"d:DesignHeight="450" d:DesignWidth="800"mc:Ignorable="d"><Button.Template><ControlTemplate TargetType="Button"><Border BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="5"><Border.Style><Style TargetType="Border"><Style.Triggers><Trigger Property="IsMouseOver" Value="True"><Setter Property="Effect"><Setter.Value><DropShadowEffect Direction="-90" Opacity="0.5"ShadowDepth="1" Color="Gray" /></Setter.Value></Setter></Trigger><Trigger Property="IsMouseOver" Value="False"><Setter Property="Effect"><Setter.Value><DropShadowEffect Direction="0" Opacity="0"ShadowDepth="0" /></Setter.Value></Setter></Trigger></Style.Triggers></Style></Border.Style><Grid Background="{TemplateBinding Background}"ClipToBounds="True"MouseLeftButtonDown="Grid_MouseLeftButtonDown"><ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"VerticalAlignment="{TemplateBinding VerticalContentAlignment}"Content="{TemplateBinding Content}" /><Path x:Name="MyPath" Fill="Black"><Path.Data><EllipseGeometry x:Name="MyEll" RadiusY="{Binding RelativeSource={RelativeSource Mode=Self}, Path=RadiusX}" /></Path.Data></Path></Grid></Border></ControlTemplate></Button.Template>
</Button>

后端代码 

    /// <summary>/// SuperButton.xaml 的交互逻辑/// </summary>public partial class SuperButton : Button{public SuperButton(){InitializeComponent();}private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e){var circle = Template.FindName("MyEll", this) as EllipseGeometry;circle.Center = Mouse.GetPosition(this);var path = Template.FindName("MyPath", this) as Path;DoubleAnimation animation1 = new DoubleAnimation(){From = 0,To = 150,Duration = new Duration(TimeSpan.FromSeconds(0.3)),};circle.BeginAnimation(EllipseGeometry.RadiusXProperty, animation1);DoubleAnimation animation2 = new DoubleAnimation(){From = 0.3,To = 0,Duration = new Duration(TimeSpan.FromSeconds(0.3)),};path.BeginAnimation(Path.OpacityProperty, animation2);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/758163.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(持续更新中)DRF相关

Resquests&#xff08;请求&#xff09; 属性 .data request.data 返回请求正文的解析内容。它包括所有解析的内容, 包括 文件或非文件 输入。 它支持解析除POST之外的HTTP方法的内容&#xff0c;这意味着你可以访问PUT和PATCH请求的内容。 它支持REST framework灵活的请求解…

Linux--Ubuntu安装

Linux操作系统时程序员必须要学的操作系统。接下来我们就来看一下Linux操作系统是如何安装的 我们在 Vmware 虚拟机中安装 linux 系统&#xff0c;所以需要先安装 vmware 软件&#xff0c;然后再 安装 Linux 系统。 一.所需安装文件&#xff1a; Vmware 下载地址(现在最新版的…

羊大师揭秘,孩子适不适合喝羊奶?

羊大师揭秘&#xff0c;孩子适不适合喝羊奶&#xff1f; 羊奶&#xff0c;这个古老而珍贵的营养饮品&#xff0c;近年来在家长们中间逐渐走红。它以其独特的营养价值和口感受到了众多家庭的青睐。但是&#xff0c;面对市面上琳琅满目的羊奶产品&#xff0c;家长们常常陷入选择…

三连杆滑块机构运动学仿真 | 【Matlab源码+理论公式文本】|曲柄滑块 | 曲柄连杆 | 机械连杆

【程序简介】&#x1f4bb;&#x1f50d; 本程序通过matlab实现了三连杆滑块机构的运动学仿真编程&#xff0c;动态展现了三连杆机构的运动动画&#xff0c;同时给出了角位移、角速度和角加速度的时程曲线&#xff0c;除了程序本身&#xff0c;还提供了机构运动学公式推导文档…

网络——入门基础

目录 协议 网络协议 OSI七层模型 网络传输基本流程 网络传输流程图 局域网通信 数据包的封装和解包 广域网通信 网络地址管理 IP地址 MAC地址 协议 关于什么是局域网&#xff0c;什么是广域网&#xff0c;我这里就不过多赘述了&#xff0c;我们直接来谈一下什么…

C#使用MD5算法对密码进行加密

目录 一、涉及到的知识点 1.MD5 2.使用基类的 Create 方法来创建 MD5 对象 3.对每个字节进行加密并将其转换为十六进制字符串 4.ComputeHash(Byte[]) 二、使用MD5算法对密码进行加密 一、涉及到的知识点 1.MD5 MD5(Message Digest Algorithm 5)是一种被广泛使用的“消息…

【链表】Leetcode 24. 两两交换链表中的节点【中等】

两两交换链表中的节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例1: 输入&#xff1a;head [1,2,3,4] 输出&#…

用连续自然数之和来表达整数 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。 输入描述 一个目标整数T (1 <=T<= 1000) 输出描述 该整数的所有表达式…

java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics

今天在使用springBoot连接influxdb报错 java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics 详细报错如下&#xff0c;提出我们缺少一个依赖 原因是由于创建influxdb客户端缺少Kotlin运行时库 解决办法就是 1.显示的添加okhttp的依赖 <dependency>…

蓝桥杯每日一题:接龙数列

题目来源&#xff1a;第十四届蓝桥杯软件赛省赛 B组 对于一个长度为 K K K 的整数数列: A 1 A_1 A1​, A 2 A_2 A2​ , … , A K A_K AK​ , 我们称之为接龙数列当且仅当 A i A_i Ai​ 的首位数字恰好等于 A i − 1 A_{i-1} Ai−1​ 的末尾数字 ( 2 ≤ i ≤ K 2 \le i \l…

my2sql —— go语言版binlog解析及闪回工具

之前学习过python语言版binlog解析及闪回工具 MySQL闪回工具简介 及 binlog2sql工具用法 最近听同事介绍有了新的go语言版的my2sql。优点是不需要安装一大堆依赖包&#xff0c;直接可以安装使用&#xff0c;并且解析更高效&#xff0c;试用一下。 一、 下载安装 1. 软件下载 …

5分钟教你使用idea调试SeaTunnel自定义插件

在用Apache SeaTunnel研发SM2加密组件过程中&#xff0c;发现社区关于本地调试SeaTunnel文章过于简单&#xff0c;很多情况没有说明&#xff0c;于是根据自己遇到问题总结这篇文档。SeaTunnel本地调试官方文档&#xff0c;希望对大家有所帮助&#xff01; 使用的引擎为Flink(不…

极路由4获取不到local_token和uuid的解决方案

今天淘了个二手极路由4(HC5962)&#xff0c;想刷个Openwrt系统来着&#xff0c;就按着网上的教程来进行。 打开极路由ROOT local-ssh利用工具 (hiwifi.wtf)这个网站&#xff0c;然后第一步获取local_token就出问题了&#xff0c;显示的字是"找不到文件..."&#xff…

C/C++炸弹人游戏

参考书籍《啊哈&#xff0c;算法》&#xff0c;很有意思的一本算法书&#xff0c;小白也可以看懂&#xff0c;详细见书&#xff0c;这里只提供代码和运行结果。 这里用到的是枚举思想&#xff0c;还有更好地搜索做法。 如果大家有看不懂的地方或提出建议&#xff0c;欢迎评论区…

前端基础篇-深入了解 Ajax 、Axios

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Ajax 概述 2.0 Axios 概述 3.0 综合案例 1.0 Ajax 概述 通过 Ajax 可以给服务器发送请求&#xff0c;并获取服务器响应的数据。异步交互是指&#xff0c;可以在不…

统计a字符右边是否有足够多的b字符与之匹配

for (char c : s) {if (c a) {cnt;} else {cnt max(cnt - 1, 0ll);} } 23ccpc桂林GProblem - G - Codeforces void solve() {std::string s;std::cin >> s;int cnt 0;for (char c : s) {if (c () {cnt;}else {cnt std::max(cnt - 1, 0);}}std::cout << (cnt…

WPF新境界:MVVM设计模式解析与实战,构建清晰可维护的用户界面

概述&#xff1a;MVVM是一种在WPF开发中广泛应用的设计模式&#xff0c;通过将应用程序分为模型、视图、和视图模型&#xff0c;实现了解耦、提高可维护性的目标。典型应用示例展示了如何通过XAML、ViewModel和数据绑定创建清晰、可测试的用户界面。 什么是MVVM&#xff1f; …

APP广告变现,推荐对接哪些移动广告聚合平台,有哪些有优势?

对于中小APP&#xff0c;受困于团队资源有限&#xff0c;在不影响用户体验的情况下&#xff0c;把变现收益做到最大化&#xff0c;优先对接聚合广告变现平台能帮助媒体拓展填充渠道&#xff0c;提升广告曝光&#xff0c;收益做到最大化。媒体只需要把所有资源集中到核心业务——…

大模型第一讲笔记

目录 1、人工智能基础概念全景介绍... 2 1.1 人工智能全景图... 2 1.2 人工智能历史... 2 1.3 人工智能——机器学习... 3 监督学习、非监督学习、强化学习、机器学习之间的关系... 3 监督学习... 4 无监督学习... 5 强化学习... 5 深度学习... 6 2、语言模型的发展及…

演讲恐惧症?别怕!这3招帮你克服舞台紧张

演讲恐惧症&#xff1f;别怕&#xff01;这3招帮你克服舞台紧张 在人生的舞台上&#xff0c;演讲往往被视为展现个人才华、传递思想观点的重要平台。然而&#xff0c;对于许多人来说&#xff0c;站在舞台上却成为了一种难以克服的恐惧。演讲恐惧症&#xff0c;这个看似微不足道…