zoukankan      html  css  js  c++  java
  • WPF 页面切换效果

    最近做一个有页面切换的吧..

    我觉得这个功能是比较基础的吧..

    在网上百度了一下..

    用NavigationWindow的比较好..

    因为Demo中是带了淡入淡出的页面效果的..

    我就想研究一下这个效果是怎么实现的..

    发现找不到..

     1  public partial class MainWindow : NavigationWindow
     2     {
     3         public MainWindow()
     4         {
     5             InitializeComponent();
     6         }
     7         private void NavigationWindow_Navigating(object sender, NavigatingCancelEventArgs e)
     8         {
     9             if (Content != null && !_allowDirectNavigation)
    10             {
    11                 e.Cancel = true;
    12                 _navArgs = e;
    13                 this.IsHitTestVisible = false;
    14                 DoubleAnimation da = new DoubleAnimation(0.3d, new Duration(TimeSpan.FromMilliseconds(100)));
    15                 da.Completed += FadeOutCompleted;
    16                 this.BeginAnimation(OpacityProperty, da);
    17             }
    18             _allowDirectNavigation = false;
    19         }
    20 
    21         private void FadeOutCompleted(object sender, EventArgs e)
    22         {
    23             (sender as AnimationClock).Completed -= FadeOutCompleted;
    24 
    25             this.IsHitTestVisible = true;
    26 
    27             _allowDirectNavigation = true;
    28             switch (_navArgs.NavigationMode)
    29             {
    30                 case NavigationMode.New:
    31                     if (_navArgs.Uri == null)
    32                     {
    33                         NavigationService.Navigate(_navArgs.Content);
    34                     }
    35                     else
    36                     {
    37                         NavigationService.Navigate(_navArgs.Uri);
    38                     }
    39                     break;
    40                 case NavigationMode.Back:
    41                     NavigationService.GoBack();
    42                     break;
    43 
    44                 case NavigationMode.Forward:
    45                     NavigationService.GoForward();
    46                     break;
    47                 case NavigationMode.Refresh:
    48                     NavigationService.Refresh();
    49                     break;
    50             }
    51 
    52             Dispatcher.BeginInvoke(DispatcherPriority.Loaded,
    53                 (ThreadStart)delegate()
    54                 {
    55                     DoubleAnimation da = new DoubleAnimation(1.0d, new Duration(TimeSpan.FromMilliseconds(200)));
    56                     this.BeginAnimation(OpacityProperty, da);
    57                 });
    58         }
    59 
    60         private bool _allowDirectNavigation = false;
    61         private NavigatingCancelEventArgs _navArgs = null;
    62     }
  • 相关阅读:
    delphi 滚屏
    delphi Sender和Tag的用法
    delphi res 字符串资源
    delphi queryCommandState
    net图片转格式
    递归数据树结构
    C# winform文件批量转编码 选择文件夹
    SQL可重复执行语句,增删改字段、表、修改默认值
    WEBAPI测试
    调用webservice
  • 原文地址:https://www.cnblogs.com/XzcBlog/p/3093098.html
Copyright © 2011-2022 走看看