1. <NavigationWindow x:Class="WpfApplication1.Window1"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Title="Switch page with transition" Height="512" Icon="icon1.ico"
  5. Width="958" ShowsNavigationUI="False" Source="Index.xaml"
  6. Navigating="NavigationWindow_Navigating" ResizeMode="NoResize">
  7. </NavigationWindow>
  1. using System;
  2. using System.Threading;
  3. using System.Windows;
  4. using System.Windows.Media.Animation;
  5. using System.Windows.Navigation;
  6. using System.Windows.Threading;
  7.  
  8. namespace WpfApplication1
  9. {
  10. /// <summary>
  11. /// Window1.xaml 的交互逻辑
  12. /// </summary>
  13. public partial class Window1 : NavigationWindow
  14. {
  15. public Window1()
  16. {
  17. InitializeComponent();
  18. }
  19.  
  20. private void NavigationWindow_Navigating(object sender, NavigatingCancelEventArgs e)
  21. {
  22. if (Content != null && !_allowDirectNavigation)
  23. {
  24. e.Cancel = true;
  25. _navArgs = e;
  26. this.IsHitTestVisible = false;
  27. DoubleAnimation da = new DoubleAnimation(0.3d, new Duration(TimeSpan.FromMilliseconds(300)));
  28. da.Completed += FadeOutCompleted;
  29. this.BeginAnimation(OpacityProperty, da);
  30. }
  31. _allowDirectNavigation = false;
  32. }
  33.  
  34. private void FadeOutCompleted(object sender, EventArgs e)
  35. {
  36. (sender as AnimationClock).Completed -= FadeOutCompleted;
  37.  
  38. this.IsHitTestVisible = true;
  39.  
  40. _allowDirectNavigation = true;
  41. switch (_navArgs.NavigationMode)
  42. {
  43. case NavigationMode.New:
  44. if (_navArgs.Uri == null)
  45. {
  46. NavigationService.Navigate(_navArgs.Content);
  47. }
  48. else
  49. {
  50. NavigationService.Navigate(_navArgs.Uri);
  51. }
  52. break;
  53. case NavigationMode.Back:
  54. NavigationService.GoBack();
  55. break;
  56.  
  57. case NavigationMode.Forward:
  58. NavigationService.GoForward();
  59. break;
  60. case NavigationMode.Refresh:
  61. NavigationService.Refresh();
  62. break;
  63. }
  64.  
  65. Dispatcher.BeginInvoke(DispatcherPriority.Loaded,
  66. (ThreadStart)delegate()
  67. {
  68. DoubleAnimation da = new DoubleAnimation(1.0d, new Duration(TimeSpan.FromMilliseconds(200)));
  69. this.BeginAnimation(OpacityProperty, da);
  70. });
  71. }
  72.  
  73. private bool _allowDirectNavigation = false;
  74. private NavigatingCancelEventArgs _navArgs = null;
  75. }
  76. }

【WPF】淡入淡出切换页面的更多相关文章

  1. jquery控制元素的淡入淡出切换

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. jQuery基础(动画篇 animate,显示隐藏,淡入淡出,下拉切换)

    1.jQuery中隐藏元素的hide方法   让页面上的元素不可见,一般可以通过设置css的display为none属性.但是通过css直接修改是静态的布局,如果在代码执行的时候,一般是通过js控制元 ...

  3. jQuery-4.动画篇---淡入淡出效果

    jQuery中淡出动画fadeOut 让元素在页面不可见,常用的办法就是通过设置样式的display:none.除此之外还可以一些类似的办法可以达到这个目的.这里要提一个透明度的方法,设置元素透明度为 ...

  4. javascript淡入淡出效果的实现思路

    这个思路是最近写XScroll.js类的时候想明白的.平常我们说的淡入淡出效果,一般分成两部分,一半是淡入,另一半就是淡出了.不过经过分析,我觉得其实只需要一半就行了如题,只有思路,没有代码. 这个思 ...

  5. jQuary总结7:动画操作,显示与隐藏 淡入淡出, 滑入滑出

    1 jquery提供了三组基本动画,这些动画都是标准的.有规律的效果,jquery还提供了自定义动画的功能. 2 显示与隐藏: show([speed],[easing],[callback]) 显示 ...

  6. 11.jQuery之淡入淡出效果

    知识点:fadeIn   fadeOut  fadeToggle  fadeTo <style> div { width: 150px; height: 300px; background ...

  7. 前端设计——js实现图片切换的淡入淡出

    1.网页结构如图所示 2.页面布局设计细节 ①分块:一个小方块是一个div. ②无序列表一般是竖直排放的,可以通过float让其水平排放.float:left; ③三个小方块是浮动上去的,所以要用到p ...

  8. 使用 jQuery 中的淡入淡出动画,实现图片的轮播效果,每隔 2 秒钟切换一张图片,共 6 张图片

    查看本章节 查看作业目录 需求说明: 使用 jQuery 中的淡入淡出动画,实现图片的轮播效果,每隔 2 秒钟切换一张图片,共 6 张图片,切换到第 6 张后从头开始切换,在图片的下方显示 6 个小圆 ...

  9. JQuery: JQuery效果(隐藏、显示、切换,滑动,淡入淡出,以及动画)

    JQuery:效果 JQuery效果有很多,包括隐藏.显示.切换,滑动,淡入淡出,以及动画等.隐藏:JQuery hide() 显示:JQuery show() 切换:JQuery toggle() ...

随机推荐

  1. 1.5 Scipy:高级科学计算

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&am ...

  2. [LeetCode] Matrix 值修改系列,例题 Surrounded Regions,Set Matrix Zeroes

    引言 Matrix内部的值修改严格来讲放在一个系列里不大合适,因为对于不同的问题,所用的算法和技巧可能完全不同,权且这样归类,以后需要时再拆分吧. 例题 1 Given a 2D board cont ...

  3. JS数组---转及补充--

    javascript之数组操作 1.数组的创建 var arr=Array();//写的角标数及直接写角标对应的内容简写 var arr=Array("我","爱&quo ...

  4. HDU 6199 DP 滚动数组

    强行卡内存 这题在CF上好像有道极相似的题 可以想到状态设计为dp[f][i][k]表示f在取完i-1时,此时可以取k个或k+1个的状态下的最大值.之前以为n是1e5,自己想不到怎么设计状态真的辣鸡, ...

  5. 数组B - 我想我需要一艘船屋

    [题目大意]弗雷德先生正在考虑在路易斯安娜州买一块地造房子,在土地调查中,他了解到由于密西西比河的侵蚀,路易斯安那州正以每年50平方英里的速度变小.弗雷德先生想知道他买的那块地是否会被侵蚀掉,经过进一 ...

  6. mybatis笔记之使用Mapper接口注解

    1. mybatis支持的映射方式 mybatis支持的映射方式有基于xml的mapper.xml文件.基于java的使用Mapper接口class,简单学习一下mybatis使用接口来配置映射的方法 ...

  7. 免杀后门(四)之shellter注入绕过

    文中提及的部分技术可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用 Shellter 是一款动态 shellcode 注入工具.利用它,我们可以将shell注入到其他的可执行程序上,从而躲避安 ...

  8. 2017 NWERC

    2017 NWERC Problem A. Ascending Photo 题目描述:给出一个序列,将其分成\(m\)份(不需要均等),使得将这\(m\)份重新排列后构成的是不下降序列,输出最小的\( ...

  9. caffe Python API 之图片预处理

    # 设定图片的shape格式为网络data层格式 transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape}) ...

  10. js事件、事件委托

    事件流 事件流:页面中接收事件的顺序: IE的事件流是冒泡流,其他的浏览器是捕获流,如下图: DOM事件流 DOM 事件流同时支持这两种事件流,并且规定DOM任何事件流都包含三个阶段:事件捕获阶段.处 ...