WPF 右下角弹窗的简单实现

软件中经常出现右下角弹窗,从下面缓缓弹出的,这次就做个简陋的实现,

思路就是在窗口加载和关闭时执行动画DoubleAnimation

今天懒得做界面了,只实现了功能。

看看效果:

下面看看代码:

主窗口添加一个按钮 ,点击事件:

 private void Button_Click(object sender, RoutedEventArgs e){NotifyWindow notifyWindow = new NotifyWindow() { Message="MessageBox" };notifyWindow.Show();}

,新建一个NotifyWindow:

xaml:

<Window x:Class="WPFDemos.NotifyWindow"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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WPFDemos"mc:Ignorable="d"Background="Transparent"AllowsTransparency="True"WindowStyle="None"x:Name="window"Title="NotifyWindow" Height="200" Width="300"><Grid Margin="8" Background="White"><Grid.Effect><DropShadowEffect BlurRadius="8" ShadowDepth="0" Color="Black"/></Grid.Effect><Button Content="关闭" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="5" Click="Button_Click"/><TextBlock Text="{Binding Message,ElementName=window}" FontSize="35" HorizontalAlignment="Center" VerticalAlignment="Center"/></Grid>
</Window>

后台代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;namespace WPFDemos
{/// <summary>/// NotifyWindow.xaml 的交互逻辑/// </summary>public partial class NotifyWindow : Window{public NotifyWindow(){InitializeComponent();Loaded += NotifyWindow_Loaded;}private void NotifyWindow_Loaded(object sender, RoutedEventArgs e){Left = SystemParameters.WorkArea.Right - this.Width;Top = SystemParameters.WorkArea.Bottom;var animation = new DoubleAnimation{Duration = new Duration(TimeSpan.FromSeconds(0.5)),To = SystemParameters.WorkArea.Bottom - this.Height,};this.BeginAnimation(TopProperty, animation);}private string message = "Message";public string Message{get { return message; }set { message = value; }}private void Button_Click(object sender, RoutedEventArgs e){var animation = new DoubleAnimation{Duration = new Duration(TimeSpan.FromSeconds(0.3)),To = SystemParameters.WorkArea.Bottom,};animation.Completed += (ss, ee) =>{this.Close();};this.BeginAnimation(TopProperty, animation);}}
}

完啦 

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

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

相关文章

你周围需要这6种人(文摘)

几乎没有什么不可思议的产品是一个人就能完成的。你需要其他人来帮助你&#xff0c;你也需要去帮助别人。在一个好的团队中&#xff0c;都需要哪种类型的人进驻&#xff1f;来自Forbes的Jessica Hagy告诉我们&#xff0c;你的周围需要这6种人&#xff1a;1. “怂恿者”&#xf…

今年不容易,要懂得爱护自己

冬天到了&#xff0c;衣服逐层加厚&#xff0c;脖子老是皱巴巴的&#xff0c;坐在位置上老是觉得周身不舒服&#xff0c;小木提醒下大家该爱护一下自己的颈椎。这个像缩成一团的东西&#xff0c;是什么&#xff1f;打开以后&#xff0c;它就变成个旅行枕啦&#xff0c;就是我们…

实现多租户系统的一点思考

2020年突发的新冠疫情&#xff0c;让在线协同办公在疫情期间成为了刚需。我们也从 2020 年的 2月3 日开始在家远程办公&#xff0c;直到四月份。协同办公软件一下子火爆了起来&#xff0c;钉钉、企业微信、特别是腾讯会议等都在疫情期间表现突出&#xff0c;呈现出井喷式的发展…

mysql cast 四舍五入_MySQL数据库中CAST与CONVERT函数实现类型转换的讲解

MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值&#xff0c;并产生另一个类型的值。两者具体的语法如下&#xff1a; CAST(value as type);CONVERT(value, type);就是CAST(xxx AS 类型), CONVERT(xxx,类型)。可以转换的类型是有限制的。这个类型可以是以下值其中的一个&…

都说Python库千千万,这几个你认识不?

目前&#xff0c;人工智能的应用日渐广泛。而作为人工智能核心的机器学习&#xff0c;是一门多领域的交叉学科&#xff0c;专门研究计算机模拟或实现人类学习行为的方法&#xff0c;以获取新的知识或技能&#xff0c;重新组织已有的知识结构使之不断改善自身的性能。简单来说&a…

Js黑客帝国效果 文字下落 制作过程和思路

效果预览: http://jsfiddle.net/dtdxrk/m8R6b/embedded/result/ Js黑客帝国效果 文字向下落制作过程和思路 1.css控制文字竖显示 2.动态添加div 用随机数当文本 3.获取分辨率 把div随机分布到屏幕里 4.随机文字的大小和透明度 5.用setInterval定时替换文本 改变div的top值 6.定…

C# 8.0 默认接口实现

C# 8.0 默认接口实现IntroC# 8.0 开始引入了默认接口实现&#xff0c;也就是可以在接口里写方法实现。在之前的版本中接口上是没有办法定义实现的&#xff0c;方法也都是 public 的&#xff0c;除了接口和属性之外是不能定义其他数据的&#xff0c;这也意味着&#xff0c;接口从…

50款大数据分析神器 :你还在用Excel

全世界只有3.14 % 的人关注了数据与算法之美你平时用什么大数据分析工具&#xff1f;D3&#xff1f; R&#xff1f; 还是Processing&#xff1f;PS和计算器...只有你还在用excel&#xff01;工欲善其事&#xff0c;必先利其器&#xff01;一款好的工具可以让你事半功倍。大数据…

WEB安全测试软件

为什么80%的码农都做不了架构师&#xff1f;>>> 五种必会软件&#xff1a; SubSonic CodeSmith Professional 4.1 HttpWatch Professional IE Developer Toolbar Fiddler 是一个web调试代理。它能够记录所有客户端和服务器间的http请求&#xff0c;允许你监视&…

python区域增长算法_区域增长算法

嘿大家好。我真的很难搞清楚这个逻辑&#xff0c;希望你能帮我。在我继续之前&#xff0c;我只想告诉你&#xff0c;我是业余程序员&#xff0c;也是一个初学者&#xff0c;没有任何形式的正式计算机科学培训&#xff0c;所以请容忍我。&#xff1a;D另外&#xff0c;我使用的是…

P6砖家:对不起,我没.NET5高并发经验,我要跑路了!

“秒杀活动”“抢红包”“微博热搜”“12306抢票”“共享单车拉新”等都是高并发的典型业务场景&#xff0c;那么如何解决这些业务场景背后的难点问题呢&#xff1f;秒杀系统中&#xff0c;QPS达到10万/s时&#xff0c;如何定位并解决业务瓶颈&#xff1f;明星婚恋话题不断引爆…

孩子觉得数学难?那是底子没打好!

孩子觉得数学难&#xff1f;那是底子没打好&#xff01;&#xff08;北师大学前教育博士帮你一起塑造孩子的数学思维&#xff01;&#xff09;要说陪娃写作业这事儿的状态和成果&#xff0c;用一句诗词就能概括&#xff1a;我本将心向明月&#xff0c;奈何明月照沟渠。陪得好&a…

Android 读取meta-data元素的数据

在AndroidManifest.xml中&#xff0c;<meta-data>元素可以作为子元素&#xff0c;被包含在<activity>、<application> 、<service>和<receiver>元素中&#xff0c;但 不同的父元素&#xff0c;在应用时读取的方法也不同。 1 &#xff1a;在Activ…

python科学计算环境配置_ATLAS + NumPy + SciPy + Theano 的Python科学计算环境搭建

Theano是一个Python库&#xff0c;提供了定义、优化以及评估数学表达式的库&#xff0c;尤其适合处理高维数组。使用Theano能获得和C差不多的处理速度&#xff0c;并且当利用GPU进行计算时&#xff0c;效率要优于CPU上运行的C语言程序。利用Theano能快速验证各种算法模型。但是…

朋友圈有趣的灵魂都去哪了?这几个优质公号给你答案

全世界有3.14 % 的人已经关注了数据与算法之美又到每周限量推荐公众号的时间啦关注了那么多公众号&#xff0c;百无聊奈地看文章你是否觉得时间被浪费&#xff0c;生命被辜负了&#xff1f;在号的数量上做减法&#xff0c;质量上做加法接下来给大家推荐最近一直在阅读的几个优质…

Istio 1.10 发布及官网改版

本文译自 Istio 官方文档 [1]&#xff0c;有部分修改。北京时间 5 月 19 日&#xff0c;我们很高兴地宣布 Istio 1.10 的发布&#xff01;我们要特别感谢我们的发布经理 Sam Naser[2] 和 张之晗 [3]&#xff0c;以及整个测试和发布工作组在 1.10 中的工作。这是我们 2021 年的第…

CSS各属性表

1、CSS 背景属性&#xff08;Background&#xff09; 属性描述CSSbackground在一个声明中设置所有的背景属性。1background-attachment设置背景图像是否固定或者随着页面的其余部分滚动。1background-color设置元素的背景颜色。1background-image设置元素的背景图像。1backgrou…

java接口课程_用java定义一个接口,用于查询课程

定义一个类Stu&#xff0c;包括如下属性&#xff1a;学号、姓名、性别、专业、课程&#xff0c;实现以下方法&#xff1a;每个属性的获取和定义&#xff0c;要求至少包含一个构造函数。定义一个接口类&#xff0c;定义方法qcc()用来查询课程。编写一...定义一个类 Stu&#xff…

深入探讨编程到底需要知道多少数学知识

全世界只有3.14 % 的人关注了数据与算法之美这篇文章中我会深入探讨编程中所需要的数学知识。你可能已经都知道了。对于基本的编程&#xff0c;你需要知道下面的&#xff1a;加减乘除 — 实际上&#xff0c;电脑会帮你作加减乘除运算。你仅需要知道什么时候运用它们。模运算 —…

sql server和mysql的区别是什么

开源MySQL是一个开源关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff1b;而SQL Server不是开源的&#xff0c;是商业的。程序MySQL主要用C和C 编程语言编程。SQL Server主要用C 编程&#xff0c;但在C语言中也有一些部分。平台SQL Server仅支持Linux和Windows平台&am…