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

WPF Flyout风格动画消息弹出消息提示框

WPF Flyout风格动画消息弹出消息提示框

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

<Window x:Class="你的名称控件.FlyoutNotication"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:dxi="http://schemas.devexpress.com/winfx/2008/xaml/core/internal"xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"xmlns:dxt="http://schemas.devexpress.com/winfx/2008/xaml/core/themekeys"xmlns:local="clr-namespace:SMAT.Controls"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"Title="FlyoutNotication"Width="300"Height="80"AllowsTransparency="True"Background="Transparent"ResizeMode="NoResize"WindowStartupLocation="Manual"WindowStyle="None"mc:Ignorable="d"><Window.Resources><Storyboard x:Key="Show"><DoubleAnimation Storyboard.TargetName="Translate"Storyboard.TargetProperty="X"From="310"To="0"Duration="0:0:0.5"><DoubleAnimation.EasingFunction><CubicEase EasingMode="EaseOut" /></DoubleAnimation.EasingFunction></DoubleAnimation></Storyboard><Storyboard x:Key="Hide"><DoubleAnimation Storyboard.TargetName="Translate"Storyboard.TargetProperty="X"To="310"Duration="0:0:0.5"><DoubleAnimation.EasingFunction><CubicEase EasingMode="EaseOut" /></DoubleAnimation.EasingFunction></DoubleAnimation></Storyboard></Window.Resources><Border Background="Gray" BorderBrush="LightGray" BorderThickness="1"><Border.RenderTransform><TransformGroup><TranslateTransform x:Name="Translate" X="300" /></TransformGroup></Border.RenderTransform><Grid><Grid.RowDefinitions><RowDefinition Height="auto" /><RowDefinition /></Grid.RowDefinitions><TextBlock x:Name="Title"Margin="12,12,4,4"FontSize="16"FontWeight="Bold"Text="标题" /><TextBlock x:Name="Message"Grid.Row="1"Margin="12,4"Text="消息内容"TextWrapping="Wrap" /></Grid></Border></Window>

C#:

 /// <summary>/// FlyoutNotication.xaml 的交互逻辑/// </summary>public partial class FlyoutNotication : Window{public FlyoutNotication(){InitializeComponent();}public static async void ShowNotication(string message, string title){FlyoutNotication flyoutNotication = new FlyoutNotication(){Owner = Application.Current.MainWindow,ShowInTaskbar = false,Left = Application.Current.MainWindow.ActualWidth+ (Application.Current.MainWindow.WindowState == WindowState.Maximized?-20: Application.Current.MainWindow.Left) - 300,Top = Application.Current.MainWindow.ActualHeight + (Application.Current.MainWindow.WindowState == WindowState.Maximized ? -20 : Application.Current.MainWindow.Top) - 80,};flyoutNotication.Message.Text = message;flyoutNotication.Title.Text = title;var sbShow = flyoutNotication.FindResource("Show") as Storyboard;flyoutNotication.Show();sbShow.Begin();await Task.Delay(2000);var sbHide = flyoutNotication.FindResource("Hide") as Storyboard;sbHide.Completed += (s, e) => flyoutNotication.Close();sbHide.Begin();}}

调用控件:

FlyoutNotication.ShowNotication("测试消息提示", "标题");
http://www.lryc.cn/news/161879.html

相关文章:

  • Spring Boot 集成 Redis
  • Java线程之间通信方式
  • 【LeetCode-中等题】367. 有效的完全平方数
  • 英语单词(二)
  • Django 用相对路径方式引用自定义模块 或 文件
  • 企业架构LNMP学习笔记22
  • uniapp和小程序设置tabBar和显示与隐藏tabBar
  • 物联网、无线通讯
  • Pod和容器设计模式
  • docker系列(3) - 常用软件安装
  • Apache Hive之数据查询
  • OpenCV---视频操作
  • 《TCP/IP网络编程》阅读笔记--进程间通信
  • mysql中show status参数介绍
  • Tomcat服务的部署及配置优化
  • 入门力扣自学笔记279 C++ (题目编号:1123)
  • 【AIGC专题】Stable Diffusion 从入门到企业级实战0402
  • 【Spring事务】Spring事务的传播机制(通俗易懂)
  • 使用 Python 的高效相机流
  • pycharm使用
  • C++项目实战——基于多设计模式下的同步异步日志系统-②-相关技术补充(不定参函数)
  • iOS开发Swift-10-位置授权, cocoapods,API,天气获取,城市获取-和风天气App首页代码
  • CNN(七):ResNeXt-50算法的思考
  • 【人月神话】深入了解软件工程和项目管理
  • 52、基于函数式方式开发 Spring WebFlux 应用
  • MySQL的用户管理
  • LeetCode //C - 114. Flatten Binary Tree to Linked List
  • 利用transform和border 创造简易图标,以适应uniapp中多字体大小情况下的符号问题
  • C/C++指针函数与函数指针
  • 30天入门Python(基础篇)——第1天:为什么选择Python