在深圳已经工作了一个月了,之前做WinForm的,现在做WPF,每天加班到晚上10点,比之前累。学习新技术也是有个过程的,我就从基础的语法和
界面布局做起。这是我仿着做一个小软件。

效果图赏析

在原基础上增加了一个树叶飘动的效果。

主要代码如下:

 <Canvas.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard>
<Storyboard Storyboard.TargetName="img1" Storyboard.TargetProperty="(Canvas.Left)">
<DoubleAnimation From="0" To="514" Duration="0:0:20" RepeatBehavior="23:59:59" AutoReverse="True"/>
</Storyboard>
</BeginStoryboard>
<BeginStoryboard Storyboard="{StaticResource StoryboardLeaf}"/>
</EventTrigger>
</Canvas.Triggers>

白云移动

树叶漂动 KeyTime="0" Value="0"起始位置 KeyTime="0:0:2" Value="20"转动的时间和角度(顺时针) KeyTime="0:0:4" Value="0"最后
的状态

 <Storyboard x:Key="StoryboardLeaf" RepeatBehavior="Forever">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children) [1].(RotateTransform.Angle)" Storyboard.TargetName="bd">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:2" Value="20"/>
<EasingDoubleKeyFrame KeyTime="0:0:4" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>

树叶漂动

 this.ShowInTaskbar = false;//是否在任务栏显示

是否在任务栏显示

            timer = new DispatcherTimer();//按时间间隔处理的类
timer.Interval = TimeSpan.Parse("00:00:01");//时间刻度的时间间隔,默认是00:00:00
timer.IsEnabled = true;
timer.Tick += new EventHandler(timer_Tick);//DispatcherTimer.Tick超过计时间隔时发生

设置时间间隔

             BitmapImage dayOrNight = new BitmapImage();//建一张图片
dayOrNight.BeginInit();
string uri = "pack://application:,,,/WpfTimeZoneExample;component/Images/";
int nowHour = Int32.Parse(DateTime.Now.ToString("HH"));
if (nowHour >= && nowHour <=)
{
uri += "sun2.png";
DayMark.Width = ;
DayMark.Height = ;
}
else
{
uri += "moon.png";
DayMark.Width = ;
DayMark.Height = ;
}
dayOrNight.UriSource = new Uri(uri);//设置源
dayOrNight.EndInit();
DayMark.Source = dayOrNight;

代码创建一张图片

         private void timer_Tick(object sender,EventArgs e)
{
CNT.Text = DateTime.Now.ToString("HH:mm:ss");
UST.Text = DateTime.Now.AddHours(-).ToString("HH:mm:ss");
UKT.Text = DateTime.Now.AddHours(-).ToString("HH:mm:ss");
PRT.Text = DateTime.Now.AddHours(-).ToString("HH:mm:ss");
SNT.Text = DateTime.Now.AddHours().ToString("HH:mm:ss");
BXT.Text = DateTime.Now.AddHours(-).ToString("HH:mm:ss");
}

间隔执行

         private void Grid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
this.DragMove();//拖拽
}

程序拖拽

鼠标放上去时,太阳/月亮 升降

 private void DayMark_MouseEnter(object sender, MouseEventArgs e)
{
TranslateTransform trans = new TranslateTransform();//TransformGroup
DayMark.RenderTransform = trans;//设置平移的对象
DoubleAnimation animation = new DoubleAnimation(, TimeSpan.FromSeconds());//15为目标值,后一个参数是动画持续时间
animation.AutoReverse = true;//是否以相反的顺序播放
trans.BeginAnimation(TranslateTransform.YProperty, animation);//TranslateTransform.YProperty,沿X,Y移动的属性。BeginAnimation应用动画
}

鼠标事件

最后说明一下,本程序开发环境:VS2013 运行环境:.Net4.0 源码下载:区时浏览小程序

WPF区时浏览小程序的更多相关文章

  1. 【炫丽】从0开始做一个WPF+Blazor对话小程序

    大家好,我是沙漠尽头的狼. .NET是免费,跨平台,开源,用于构建所有应用的开发人员平台. 本文演示如何在WPF中使用Blazor开发漂亮的UI,为客户端开发注入新活力. 注 要使WPF支持Blazo ...

  2. 近期热门微信小程序demo源码下载汇总

    近期微信小程序demo源码下载汇总,乃小程序学习分析必备素材!点击标题即可下载: 即速应用首发!原创!电商商场Demo 优质微信小程序推荐 -秀人美女图 图片下载.滑动翻页 微信小程序 - 新词 GE ...

  3. VSTO学习笔记(七)基于WPF的Excel分析、转换小程序

    原文:VSTO学习笔记(七)基于WPF的Excel分析.转换小程序 近期因为工作的需要,要批量处理Excel文件,于是写了一个小程序,来提升工作效率. 小程序的功能是对Excel进行一些分析.验证,然 ...

  4. 微信小程序缓存滑动距离,当页面浏览到一定位置,滑动其他页面后返回该页面记录之前的滑动距离

    15.微信小程序缓存滑动距离 我们在浏览页面的时候,然后左滑或者右滑到新的页面,等返回此页面,我们希望可以记录上次滑动的距离 虽然这个实现起来并不难,但是会遇到一些坑,因为scroll-view的组件 ...

  5. 微信小程序 springboot nginx 做图片存储 上传 浏览

    微信小程序前端-springboot后端-nginx图片存储 前言 本人小白一名,这是第一次学习微信小程序,特此做个记录. 首先准备nginx做图片存储 选择一个地址存放图片 #我的地址 [root@ ...

  6. WPF 图片浏览 伪3D效果

    原文:WPF 图片浏览 伪3D效果 首先上效果图: 因项目要求,需要把图片以"好看"."炫"的效果展示出来,特地研究了一下WPF关于3D方面的制作,奈何最终成果 ...

  7. 微信小程序(微信应用号)组件讲解

    这篇文章主要讲解微信小程序的组件. 首先,讲解新建项目.现在有句话:招聘三天以上微信小程序开发,这个估计只能去挖微信的工程师了.技术新,既然讲解,那我们就从开始建项目讲解. 打开微信web开发者工具, ...

  8. 微信小程序开发日记——高仿知乎日报(下)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...

  9. 体验报告:微信小程序在安卓机和苹果机上的区别

    很多人可能会问:微信小程序和在微信里面浏览一个网页有什么区别? 首先,小程序的运行是全屏的,界面跟进入了一个APP很像,更为沉浸跟在微信里面访问h5不一样:其次,它的浏览体验更为稳定. 不过,这还不够 ...

随机推荐

  1. binary-tree-inorder-traversal——二叉树中序遍历

    Given a binary tree, return the inordertraversal of its nodes' values. For example:Given binary tree ...

  2. HDU 小明系列故事——师兄帮帮忙 高速幂

    小明系列故事--师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  3. Objective-C 执行AppleScript脚本

    在Objective-C里事实上也能够执行AppleScript 第一种方式是Source 将脚本写到变量字符串里 NSAppleEventDescriptor *eventDescriptor = ...

  4. Error executing DDL via JDBC Statement

    © 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述: 启动hibernate测试案例时报错如下: org.hibernate.tool.schema.spi.CommandAcceptan ...

  5. php selenium 测试验证码问题

    $this->pause(10000)这段代码用于停止程序执行,可以在这个空隙内输入验证码

  6. sealed,new,virtual,abstract与override关键字的区别?

    1. sealed——“断子绝孙” 密封类不能被继承.密封方法可以重写基类中的方法,但其本身不能在任何派生类中进一步重写.当应用于方法或属性时,sealed修饰符必须始终与override一起使用. ...

  7. python学习(十二)模块

    怎么一下子就来学了模块? 其实学了判断.循环.函数等知识就可以开始下水写程序了,不用在意其他的细节,等你用到的时候再回过头去看,此所谓囫囵吞枣学习法. 为啥学模块? 有点用的.或者有点规模的程序都是要 ...

  8. OpenCV 入门示例之五:一个复杂点的变换

    前言 前文介绍了一个简单的变换.需要注意的是,很多时候,输出和输入图像的格式是不同的( 大小,深度,通道 ).在本文将展示的程序中,对图像进行了缩放( 使用cvPyrDown 函数 ),这种情况下需要 ...

  9. FAT12中,如何定位大于一个扇区(512B)的文件内容

    [0]README 0.1)本文旨在于 演示在FAT12中, 如何取定位大于 512B 的文件内容,和查看它: 0.2)如何制作FAT12文件系统,以及如何向文件中添加temp.txt文件,参见: { ...

  10. 多媒体开发之sps---解析sps得到图像的宽高

    (1)通过块的宽高解析出真个h264的分辨率 如何解析SDP中包含的H.264的SPS和PPS串 http://www.pernet.tv.sixxs.org/thread-109-1-1.html ...