Blend_技巧篇_淡入淡出
原文:Blend_技巧篇_淡入淡出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010265681/article/details/76651773
1、实现原理

1.1 利用UIElement.OpacityMask属性,用于改变对象区域的不透明度的画笔。可以使元素的特定区域透明或部分透明,从而实现比较新颖的效果。

1.2 OpacityMask属性接受任何画刷,可利用LinearGradientBrush线性渐变画刷,通过对渐变画刷中各颜色点加以动画处理即可。

2、渐变淡入实现

渐变淡入效果,可通过事件触发器触发Loaded事件实现,所以可以仅用前端XAML语言实现。

2.1 设置对象的OpacityMask属性

<Grid.OpacityMask><LinearGradientBrush StartPoint="0.5,1" EndPoint="0.5,0"><GradientStop Color="#00000000" Offset="0"/><GradientStop Color="#00000000" Offset="1"/><GradientStop Color="#00000000" Offset="1"/></LinearGradientBrush>
</Grid.OpacityMask>

2.2 设置对象的事件触发器

<Grid.Triggers><EventTrigger RoutedEvent="Loaded"><EventTrigger.Actions><BeginStoryboard><Storyboard><DoubleAnimation From="1" To="0" Duration="0:0:1.5" Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[1].Offset"/><DoubleAnimation From="1" To="0" Duration="0:0:1" BeginTime="0:0:0.5" Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[2].Offset"/><ColorAnimation To="#FF000000" Duration="0" Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[2].Color"/></Storyboard></BeginStoryboard></EventTrigger.Actions></EventTrigger>
</Grid.Triggers>

3、渐变淡出实现

渐变淡出效果,由于事件触发器事件需要路由事件触发,所以需要使用后端代码实现。

3.1 准备渐变淡出的动画和画刷资源

<Window.Resources><Storyboard x:Key="ClosedStoryboard" Storyboard.TargetName="LoginGrid"><DoubleAnimation From="1" To="0" Duration="0:0:2" Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[1].Offset"/><DoubleAnimation From="1" To="0" Duration="0:0:1.5" BeginTime="0:0:0.5"Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[2].Offset"/><ColorAnimation To="#00000000" Duration="0" Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[2].Color"/></Storyboard><LinearGradientBrush x:Key="ClosedBrush" StartPoint="0.5,0" EndPoint="0.5,1"><GradientStop Color="#FF000000" Offset="0"/><GradientStop Color="#FF000000" Offset="1"/><GradientStop Color="#FF000000" Offset="1"/></LinearGradientBrush>
</Window.Resources>

3.2 后端通过绑定按钮的Click事件实现

private void btnCancel_Click(object sender, RoutedEventArgs e)
{this.IsEnabled = false;LoginGrid.OpacityMask = this.Resources["ClosedBrush"] as LinearGradientBrush;Storyboard std = this.Resources["ClosedStoryboard"] as Storyboard;std.Completed += delegate { this.Close(); };std.Begin();
}

posted on 2018-10-23 22:22 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/9839849.html

Blend_技巧篇_淡入淡出相关推荐

  1. mysql的经典sql语句大全_经典SQL语句大全_基础篇_提升篇_技巧篇_开发经典篇

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  2. android淡入淡出动画_在Android中淡入动画示例

    android淡入淡出动画 1) XML File: activity_main 1)XML文件:activity_main <?xml version="1.0" enco ...

  3. 小帅小胖智能机器人如何使用_小帅智能教育机器人使用技巧篇(下篇)

    原标题:小帅智能教育机器人使用技巧篇(下篇) 主持人:早上起得晚,可不可以不刷牙啊? 小帅:你不刷牙嘴巴臭臭的,我只能捂着鼻子跟你说话了. 主持人:今天邻居欺负我.我该怎么办? 小帅:君子动口不动手, ...

  4. spotify歌曲下载_如何像真正的DJ一样让Spotify在歌曲之间进行淡入淡出

    spotify歌曲下载 When you listen to a live DJ, one song doesn't stop playing and then another start after ...

  5. linux绝育玩客云_玩机技巧 篇二:玩客云实用指南(真·无痛绝育),附玩物下载对比...

    玩机技巧 篇二:玩客云实用指南(真·无痛绝育),附玩物下载对比 2019-12-10 15:52:41 408点赞 3771收藏 336评论 创作立场声明:看到站内有些关于玩客云❎绝育的帖子,补充一下 ...

  6. ibm x201 怎么清理内部_维修小技巧 篇五:ThinkPadX201i拆机换散热风扇清灰教程

    维修小技巧 篇五:ThinkPadX201i拆机换散热风扇清灰教程 2020-11-25 21:45:44 16点赞 14收藏 42评论 创作立场声明:拆装有风险.拆装有风险.拆装有风险,欢迎收藏,点 ...

  7. ipad分屏_第九期procreate教程|分屏技巧篇+超好用的iPad软件推荐

    ✨ 愿 你 我 都 成 为 发 光 发 热 之 人 ✨ 文|芳子酱 大家好,我是芳子酱. 这个系列的教程终于快要完结啦! 今天要分享的是分屏技巧篇,还会推荐一些好用的iPad软件给大家哦~一起来看看吧 ...

  8. an怎么做淡入_淡入与淡出效果

    ## 1.淡入特效的函数fadeIn() ``` // 1.淡入/渐显 $("#fadeIn").click(function(event) { $("#group1 i ...

  9. html多图轮播淡入淡出js,原生JS实现图片轮播与淡入效果的简单实例

    最近对css的兴趣提不起来,因为以前对图片轮播一直耿耿于怀苦于学艺不精,所以,花了点时间熟悉了一下js.然后一条道走到黑,用jquery和js写了一下轮播和图片淡入的效果.以后学习的路很长,希望自己在 ...

最新文章

  1. BASE64Encoder cannot be resolved to a type类似问题的解决办法
  2. Jquery中替换节点的方法replaceWith()和replaceAll()
  3. 搞怪菜鸟加入域全程图解[为企业部署Windows Server 2008系列十二]
  4. 机器学习算法Python实现:gensim里的similarities文本相似度计算
  5. css less 不要作用到子对象_使用Less实现网站主题切换
  6. 生成微信蓝色昵称,原来如此简单
  7. [转] Omnifocus 2 for mac license
  8. jquery 时间选择插件-jedate
  9. 电子购物网站导航制作
  10. python安装reportlab
  11. 古典钢琴音源插件-COLOVE Products Pianos X1 v2.0 WiN-MAC
  12. 技巧篇:常用的vba代码汇总
  13. 浅析Minecraft直播弹幕模组BakaDanmaku源码
  14. 3月9日火箭vs黄蜂
  15. html字体随页面大小变化,字体大小随网页大小变化
  16. [Mysql] STR_TO_DATE函数
  17. 如何用计算机还原魔方,魔方复原
  18. Red5与Nginx Rtmp性能对比
  19. ReDet A Rotation-equivariant Detector for Aerial Object Detection 论文学习
  20. 程序员,你以为你很优秀,但却面试屡屡失败?

热门文章

  1. 图片配置文件设置 索尼a7s2_16组Sony索尼系列相机Slog2和Slog3常用Vlog灰片视频电影LTUS调色预设...
  2. abp 上如何使用getstoredproccommand_多效唑,如何在柑橘上安全使用
  3. SpringSecurity Filter
  4. Spring Security Oauth2 (二) 代码 授权码模式
  5. python 抽象类和接口
  6. Flask cookie
  7. C语言关系运算符介绍和示例
  8. ssh登录发生加密算法报错解决办法
  9. 什么是云存储网关CSG
  10. Docker学习总结(44)——Docker容器时间与主机时间不一致的三种解决方式