为了让用户有个更好的UI交互,可以增加自动淡出的消息弹窗,例如:网易云音乐UWP,切换播放模式时,出现的类似消息提示。

右键项目,添加用户控件

UserControlDemo.xaml:

<UserControl<UserControl.Resources><Storyboard x:Name="story_Board" ><DoubleAnimationUsingKeyFrames Storyboard.TargetName="main_Grid"Storyboard.TargetProperty="Opacity"BeginTime="0:0:0"><SplineDoubleKeyFrame  KeyTime="00:00:00.00" Value="1"/><SplineDoubleKeyFrame  KeyTime="00:00:00.400" Value="0.0"/></DoubleAnimationUsingKeyFrames></Storyboard></UserControl.Resources><Grid x:Name="main_Grid"><Border  CornerRadius="10"Background="Transparent"HorizontalAlignment="Center" VerticalAlignment="Center"Padding="15,5">              <TextBlock x:Name="showContent_textBlock" Margin="10,0,0,2" Foreground="WhiteSmoke"  FontSize="30"/>                              </Border></Grid>
</UserControl>

UserControlDemo.xaml.cs:

public sealed partial class UserControlDemo : UserControl{private Popup popup;private string str;private TimeSpan showTime_tmr;public UserControlDemo(){this.InitializeComponent();popup = new Popup();popup.Child = this;MeasurePopupSize();this.Loaded += NotifyPopup_Loaded;this.Unloaded += NotifyPopup_Unloaded;}public VolumeContentDialog(string content, TimeSpan showTime) : this(){this.str = content;this.showTime_tmr = showTime;}public VolumeContentDialog(string content) : this(content, TimeSpan.FromSeconds(2)){}public void Show(){this.popup.IsOpen = true;}public void Hide(){this.popup.IsOpen = false;}private void MeasurePopupSize(){this.Width = ApplicationView.GetForCurrentView().VisibleBounds.Width;double marginTop = 0;if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))marginTop = StatusBar.GetForCurrentView().OccludedRect.Height;this.Height = ApplicationView.GetForCurrentView().VisibleBounds.Height;this.Margin = new Thickness(0, marginTop, 0, 0);}private void NotifyPopup_Loaded(object sender, RoutedEventArgs e){this.showContent_textBlock.Text = str;this.story_Board.BeginTime = this.showTime_tmr;this.story_Board.Begin();this.story_Board.Completed += storyBoard_Completed;ApplicationView.GetForCurrentView().VisibleBoundsChanged += NotifyPopup_VisibleBoundsChanged;}private void NotifyPopup_VisibleBoundsChanged(ApplicationView sender, object args){MeasurePopupSize();}private void storyBoard_Completed(object sender, object e){this.popup.IsOpen = false;}private void NotifyPopup_Unloaded(object sender, RoutedEventArgs e){ApplicationView.GetForCurrentView().VisibleBoundsChanged -= NotifyPopup_VisibleBoundsChanged;}}

然后直接在MianPage.cs中实例化引用就可以了。

MainPage.xaml.cs:

UserControlDemo demo = new UserControlDemo("Demo");
demo.Show();

UWP笔记-消息弹窗自动淡出相关推荐

  1. Qt 实现桌面右下角消息弹窗提示

    简单的做了一个类似QQ消息提示的消息弹窗提示的小模块,便于在系统后台程序提示检测的信息,使用Qt开发,设计整体思路是做一个无框架的widget,自己实现标题栏和内容栏,添加了向上移出,自动消隐退出效果 ...

  2. 【WPF】对话框/消息弹窗

    非模式对话框 需求:弹窗是非模式对话框,即可以多个弹窗弹出,且弹窗后面的窗体可以被操作,不会被锁定. 自定义的窗体Window实现以下步骤: 在C#代码中弹出窗体时,使用 window.Show() ...

  3. linux磁盘符变化autofs,Linux基础教程学习笔记之Autofs自动挂载

    Linux基础教程学习笔记之Autofs自动挂载 Autofs自动挂载: yum -y install autofs vim /etc/auto.master  在文件中添加下面行 /home/gue ...

  4. 【ActiveMQ】消息生产者自动注入报错:Could not autowire. No beans of 'JmsMessagingTemplate' type found

    标签:public   style   hat   and   报错   require   core   ota   ati 使用ActiveMQ过程中,定义消息生产者: package com.s ...

  5. vue实现消息badge 标记_Vue $mount实战之实现消息弹窗组件

    之前的项目一直在使用Element-UI框架,element中的Notification.Message组件使用时不需要在html写标签,而是使用js调用.那时就很疑惑,为什么element ui使用 ...

  6. [RHCSA学习笔记]Autofs实现自动挂载NFS共享

    NFS/autofs NFS Server 服务端 systemctl status nfs-server.service systemctl status rpcbind.service vi /e ...

  7. 自动驾驶技术——初学者笔记1:自动驾驶分级

    自动驾驶技术--初学者笔记1:自动驾驶分级 最近正在研读工信出版社的<第一本无人驾驶技术书>,这里做一下笔记,这一章作为写博客的测试篇章. 自动驾驶技术的分级. 分级又两种:美国公路交通安 ...

  8. Android 9.0 recovery 菜单页跳过弹窗自动 WIPE_DATA(恢复出厂设置)

    1.概述 在9.0的系统产品开发中,对系统原生的recovery功能也是系统中比较重要的一个部分,所以对于恢复出厂设置在开发中也是常有的功能 而在一款产品的开发过程中,由于在recovery界面需要手 ...

  9. html qq消息弹窗提醒,能不能让QQ消息不再讨厌 QQ HD mini消息弹窗提醒的优化方案...

    随着用户对体验的要求越来越高,手机QQ消息的弹窗似乎对用户有着隐形的骚扰,手机QQ现在已经是一款很成熟的产品了. 但是在使用时,你一定有这样的感觉:不想错过某人的消息,但又有其他的消息在干扰,一遍又一 ...

  10. RabbitMQ之消息的自动应答、手动应答和消息持久化(Java开发)

    1.消息的自动和手动应答 boolean autoAck = true;//消息自动应答 channel.basicConsume(WQ_QUEUE,autoAck,consumer); 默认情况下, ...

最新文章

  1. 九度 1553:时钟(模拟题)
  2. android 关于多任务下载问题
  3. python爬虫面试问题_Python爬虫面试总结
  4. .NetCore 3.1 安装本地化中文智能提示
  5. C#多线程编程系列(三)- 线程同步
  6. mysql+distinct+max_MySQL中distinct与group by之间的性能进行比较
  7. python的json中方法以及jsonpath模块
  8. (五)Qt实现自定义模型基于QAbstractItemModel
  9. spring 源码下载
  10. MAC常用快捷键和常规操作(一)
  11. c++编游戏-扫雷-c++游戏将彩色化-windows7自带扫雷游戏休闲娱乐
  12. 微软所有正版产品下载地址
  13. Android免费地图应用网址
  14. 体系结构复习2——指令级并行(分支预测和VLIW)
  15. 凡科服务器物理位置,建设网站教程
  16. 【死磕 Spring】----- IOC 之深入理解 Spring IoC
  17. latex 参考文献显示问号_回「LaTeX 的罪与罚」
  18. SAP ABAP BDC录屏 数据导入和检验-实例
  19. 有没有好人看看,谢谢谢谢
  20. Android Jni 调用

热门文章

  1. 数据库系统的基本原理(概述)
  2. robots.txt漏洞
  3. 亚马逊服务器443端口开放配置aws
  4. 牛客网--15894--WWX的520
  5. jdk8特性 lambda表达式
  6. 360锁屏壁纸在哪个文件夹
  7. 九爷带你了解 nginx优化
  8. 单片机实验:外部中断系统实验 如何1357,2468灯交替亮
  9. html js 生成缩略图,js实现产品缩略图效果
  10. 如何申请屏蔽垃圾短信