WPF TabControl 模拟动画
using System;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
using WangCai.Common; namespace WangCai.Controls
{ public class MyTabControl : TabControl
{ Timer t = null;
private int left = ;
private int AnimationIndex = ;
protected override void OnSelectionChanged(SelectionChangedEventArgs e)
{
Action a = () =>
{
try
{
AnimationIndex++;
var control = e.Source as MyTabControl;
if (control == null) return;
base.OnSelectionChanged(e);
if (AnimationIndex % == )
{
left = -;
}
else
{
left = ;
} var selectItem = control.SelectedContent as ScrollViewer;
if (selectItem == null)
{ var selectItem_2 = control.SelectedContent as Grid;
if (selectItem_2 == null)
{
var selectItem_3 = control.SelectedContent as StackPanel;
if (selectItem_3 == null) return;
selectItem_3.Visibility = Visibility.Collapsed;
t = new Timer(Move, selectItem_3, , );
return;
}
selectItem_2.Visibility = Visibility.Collapsed;
t = new Timer(Move, selectItem_2, , );
return;
}
selectItem.Visibility = Visibility.Collapsed; t = new Timer(Move, selectItem, , ); }
catch (Exception)
{ }
};
this.Dispatcher.BeginInvoke(a);
} public void Move(object o)
{ Action a = () =>
{
try
{
if (AnimationIndex % == )
{
left +=;
if (left > )
{
t.Dispose(); return;
}
AnimationIndex = ;
}
else
{ left -= ; if (left <= )
{
t.Dispose(); return;
}
AnimationIndex = ;
} var selectItem = o as ScrollViewer;
if (selectItem == null)
{
var selectItem_2 = o as Grid;
if (selectItem_2 == null)
{
var selectItem_3 = o as StackPanel;
if (selectItem_3 == null) return;
selectItem_3.Visibility = Visibility.Visible;
selectItem_3.Margin = new Thickness(left, , , ); return;
}
selectItem_2.Visibility = Visibility.Visible;
selectItem_2.Margin = new Thickness(left, , , );
return;
}
selectItem.Visibility = Visibility.Visible;
selectItem.Margin = new Thickness(left, , , );
}
catch (Exception)
{ } };
this.Dispatcher.BeginInvoke(a);
} }
}
WPF TabControl 模拟动画的更多相关文章
- 使用WPF技术模拟手机界面
原文:使用WPF技术模拟手机界面 1. 前言 WPF(Windows Presentation Foundation),即"Windows呈现基础",它的目的非常明确,就是用来把数 ...
- WPF中的动画——(三)时间线(TimeLine)
WPF中的动画——(三)时间线(TimeLine) 时间线(TimeLine)表示时间段. 它提供的属性可以让控制该时间段的长度.开始时间.重复次数.该时间段内时间进度的快慢等等.在WPF中内置了如下 ...
- WPF编程学习——动画
前言 使用动画,是增强用户体验的一种有效的手段.合理的动画,可以让应用程序的界面看起来更加自然.真实.流畅.舒适,更有效地向用户展现信息,用户也更容易接受.同时也增加了软件使用的乐趣,提高用户粘度.( ...
- WPF 跟随鼠标动画 by wgscd
WPF 跟随鼠标动画 by wgscd <UserControl x:Class="WpfApplication1.Spark" xmlns="http://sch ...
- 【WPF学习笔记】[转]周银辉之WPF中的动画 && 晓风影天之wpf动画——new PropertyPath属性链
(一)WPF中的动画 动画无疑是WPF中最吸引人的特色之一,其可以像Flash一样平滑地播放并与程序逻辑进行很好的交互.这里我们讨论一下故事板. 在WPF中我们采用Storyboard(故事板)的方式 ...
- WPF 有趣的动画效果
WPF 有趣的动画效果 这一次我要呈上一个简单的文章,关于给你的WPF apps加入美丽的光线动画,可是我对动画这东西可能有点入迷了. 实际上.我对动画如此的入迷,以至 ...
- WPF 画线动画效果实现
原文:WPF 画线动画效果实现 弄了将近三天才搞定的,真是艰辛的实现. 看了很多博客,都太高深了,而且想要实现的功能都太强大了,结果基础部分一直实现不了,郁闷啊~ 千辛万苦终于找到了一个Demo,打开 ...
- WPF特效-粒子动画
原文:WPF特效-粒子动画 WPF实现泡泡龙小游戏效果. /// -Ball to Ball Collision - Detection and Handling /// http:// ...
- WPF 动态模拟CPU 使用率曲线图
原文:WPF 动态模拟CPU 使用率曲线图 在工作中经常会遇到需要将一组数据绘制成曲线图的情况,最简单的方法是将数据导入Excel,然后使用绘图功能手动生成曲线图.但是如果基础数据频繁更改, ...
随机推荐
- MySQL系列:查看并修改当前数据库的编码
MySQL中,数据库的编码是一个相当重要的问题,有时候我们需要查看一下当前数据库的编码,甚至需要修改一下数据库编码. 查看当前数据库编码的SQL语句为: mysql> use xxx ...
- 配置sonar、jenkins进行持续审查
本文以CentOS操作系统为例介绍Sonar的安装配置,以及如何与Jenkins进行集成,通过pmd-cpd.checkstyle.findbugs等工具对代码进行持续审查. 一.安装配置sonar ...
- 技术分析:Femtocell家庭基站通信截获、伪造任意短信
阿里移动安全团队与中国泰尔实验室无线技术部的通信专家们一起,联合对国内运营商某型Femtocell基站进行了安全分析,发现多枚重大漏洞,可导致用户的短信.通话.数据流量被窃听.恶意攻击者可以在免费申领 ...
- Android开发的那些坑和小技巧
1.android:clipToPadding 意思是控件的绘制区域是否在padding里面.默认为true.如果你设置了此属性值为false,就能实现一个在布局上事半功陪的效果.先看一个效果图. 上 ...
- 《TCP/IP详解卷1:协议》第4章 ARP:地址解析协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- Apache CXFjar包目录(转)
文件目录结构及相关文件的详细说明:|-bin|-docs|-etc|-lib|-licenses|-modules|-samples bin(目录) bin 目录中是 CXF 框架中所提供的代码生成. ...
- popupwindow与软键盘的问题
1.软键盘弹出时不会改变布局(覆盖页面的效果)android:windowSoftInputMode="adjustPan" 2.软键盘弹出时不会覆盖popuwindowsetSo ...
- XMLHttpRequest的POST中文表单问题解决方案
XMLHttpRequest的POST中文表单问题解决方案 由于XMLHttpRequest POST的内容是用UTF-8编码,所以在服务端要先把request的编码改为UTF-8. 而且客户端pos ...
- iOS不得姐项目--登录模块的布局,设置文本框占位文字颜色,自定义内部控件竖直排列的按钮
一.登录模块的布局 将一整部分切割成若干部分来完成,如图分成了三部分来完成 设置顶部状态栏为白色的方法 二.设置文本框占位文字颜色 <1>方法一与方法二实现原理是同一种,都是通过设置pla ...
- iOS边练边学--多线程练习的多图片下载 以及 使用第三方框架(SDWebImage)的多图片下载
一.自己实现多图片下载应该注意的问题 沙盒缓存的问题 程序缓存的问题 cell重复利用显示图片混乱的问题 -- 用户拖拽快,下载图片慢导致的 解决图片混乱引入NSOperation集合的问题 资源下载 ...