我们先来看看Quartz MS字体动态显示系统时间的效果,难度相较于上一篇也要简单很多。

首先是定义一个TextBlock例如以下。

<Grid><TextBlock Name="tBlockTime" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="68" Foreground="Green"/>
</Grid>

后台代码例如以下:

private DispatcherTimer dispatcherTimer;public MainWindow()
{InitializeComponent();dispatcherTimer = new System.Windows.Threading.DispatcherTimer();// 当间隔时间过去时发生的事件dispatcherTimer.Tick += new EventHandler(ShowCurrentTime);dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 1);dispatcherTimer.Start();
}public void ShowCurrentTime(object sender, EventArgs e)
{//获得星期//this.tBlockTime.Text = DateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("zh-cn"));//this.tBlockTime.Text += "\n";//获得年月日//this.tBlockTime.Text = DateTime.Now.ToString("yyyy:MM:dd");   //yyyy年MM月dd日//this.tBlockTime.Text += "\n";//获得时分秒this.tBlockTime.Text = DateTime.Now.ToString("HH:mm:ss");
}

注意在这个时间的设置时。第一步显示的时间是”=”。随后都是”+=”。比方说要先显示星期。再显示时分秒。就是这种:

//获得星期
this.tBlockTime.Text = DateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("zh-cn"));
this.tBlockTime.Text += "\n";//获得时分秒
this.tBlockTime.Text += DateTime.Now.ToString("HH:mm:ss");

然后还须要字体,然而字体并不可能是写出来的……我们都须要须要引用资源。

<Window x:Class="WpfApplication2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="MainWindow"Width="500" Height="200"WindowStyle="None"AllowsTransparency="True"Background="Black"><Window.Resources><Style x:Key="QuartzMSFont"><Setter Property="TextElement.FontFamily" Value="Resources/#Quartz MS"/></Style></Window.Resources><Grid><TextBlock Name="tBlockTime" Style="{DynamicResource QuartzMSFont}"  HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="68" Foreground="Green"/></Grid></Window>

这里我仅仅是给大家一个启示,假设系统自带的字体已经不能满足你的艺术感,你全然能够另外找字体。甚至也能够创造字体,近来谷歌苹果都在做这个。

我已经把字体放到项目中了。须要源代码/字体的童鞋直接留邮箱……

这一篇内容不多,也算不上精彩。但童鞋们能够看看上一篇:好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字 ,也能够今明天再来看看第三篇~


没想到这篇博客被推荐了啦,内容这么少……绝不能让如此不堪的文章放在首页啦,所以就来加入一点东西咯——也就是前文中的第二个GIF(个人感觉还是蛮炫酷的)。

首先给窗口设置一下吧:

<Window x:Class="WPFButton.Window1"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="MainWindow"Width="600" Height="400"WindowStyle="None"AllowsTransparency="True"Background="Wheat">

这段代码中的属性在前一篇中都有介绍,大家能够看看。

我定义了这么多的Button,是为了后面的演示效果而已。实际中可能用不到这么多button吧,哈哈。

     <Grid><Button Content="Yellow"   Style="{StaticResource ResourcesButtonStyle}" Background="Yellow" Margin="90,37,450,323"/><Button Content="Purple" Style="{StaticResource ResourcesButtonStyle}" Background="Purple" Margin="450,230,90,130" /><Button Content="Green" Style="{StaticResource ResourcesButtonStyle}" Background="Green" Margin="90,130,450,230" /><Button Content="DarkCyan" Style="{StaticResource ResourcesButtonStyle}" Background="DarkCyan" Margin="450,37,90,323" /><Button Content="Black" Style="{StaticResource ResourcesButtonStyle}" Background="Black" Margin="90,230,450,130"  /><Button Content="OrangeRed" Style="{StaticResource ResourcesButtonStyle}" Background="OrangeRed" Margin="450,136,90,224"/><Button Content="Violet" Style="{StaticResource ResourcesButtonStyle}" Background="Violet" Margin="270,37,270,323" /><Button Content="CornflowerBlue" Style="{StaticResource ResourcesButtonStyle}" Background="CornflowerBlue" Margin="270,230,270,130"  /><Button Content="Lime" Style="{StaticResource ResourcesButtonStyle}" Background="Lime" Margin="270,136,270,224"/><Button Content="Azure" Style="{StaticResource ResourcesButtonStyle}" Background="Azure" Margin="90,323,450,37"  /><Button Content="Turquoise" Style="{StaticResource ResourcesButtonStyle}" Background="Turquoise" Margin="270,323,270,37"  /><Button Content="Tomato" Style="{StaticResource ResourcesButtonStyle}" Background="Tomato" Margin="450,323,90,37" />   </Grid>

这里面用了资源,不要着急。后面会慢慢道来~

假设不用资源它是长这种:

好吧,废话不多说,上资源。

 <Window.Resources>      <Style x:Key="ResourcesButtonStyle" TargetType="{x:Type FrameworkElement}" ><Setter Property="Width" Value="60"/><Setter Property="Height" Value="40"/>                     <Setter Property="Effect">                            <Setter.Value><DropShadowEffect x:Name="OSE" BlurRadius="10" Color="Lime" Direction="0"   Opacity="1" RenderingBias="Performance" ShadowDepth="0" ><Storyboard.TargetProperty>BlurRadius</Storyboard.TargetProperty></DropShadowEffect></Setter.Value></Setter>   </Style>
</Window.Resources>    

C#比較好学的一点就是这些属性呀什么的都能够通过名字来猜出来意思,即便猜不出来也能够通过不断的尝试来发现这些属性是做什么的。

属性RenderingBias能够设置側重于性能还是质量,就像电脑上的显卡设置里那样。

其它那些属性强烈推荐大家不断的改动数值观察终于调试出来程序的反应,这也算是小小的实验了。

上面的资源是静态,还须要加上Storyboard动画。动画嘛,能够以各种属性为參照,这里我以BlurRadius和Color。前者能够间接做出呼吸灯效果(只是后面我将其数值最大设置成了100,要是哪个呼吸灯像这样那就算是喘气了),后者能够更换“呼吸”的色彩。

<Style.Triggers><EventTrigger RoutedEvent="GotFocus"><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetProperty="(FrameworkElement.Effect).(DropShadowEffect.BlurRadius)" From="0" To="100" BeginTime="00:00:00" Duration="00:00:01" AutoReverse="True"  RepeatBehavior="Forever"/><ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Effect).(DropShadowEffect.Color)"RepeatBehavior="Forever" AutoReverse="True"><EasingColorKeyFrame KeyTime="0" Value="Yellow"/><EasingColorKeyFrame KeyTime="0:0:0.4" Value="Purple"/><EasingColorKeyFrame KeyTime="0:0:0.8" Value="Green"/><EasingColorKeyFrame KeyTime="0:0:1.2" Value="DarkCyan"/><EasingColorKeyFrame KeyTime="0:0:1.6" Value="Black"/><EasingColorKeyFrame KeyTime="0:0:2.0" Value="OrangeRed"/><EasingColorKeyFrame KeyTime="0:0:2.4" Value="Violet"/><EasingColorKeyFrame KeyTime="0:0:2.8" Value="CornflowerBlue"/><EasingColorKeyFrame KeyTime="0:0:3.2" Value="Lime"/><EasingColorKeyFrame KeyTime="0:0:3.6" Value="Azure"/><EasingColorKeyFrame KeyTime="0:0:4.0" Value="Turquoise"/><EasingColorKeyFrame KeyTime="0:0:4.4" Value="Tomato"/></ColorAnimationUsingKeyFrames></Storyboard></BeginStoryboard></EventTrigger>
</Style.Triggers>

BeginTime是起始时间。KeyTime相似于Flash里的关键帧的时间。

前面是BlurRadius的变化,能够用From=”0” To=”100” ;而后面是Color,则须要用Value。

由于CSDN博客上最多仅仅能上传2M的图片,所以这些GIF都非常短啦。大家应该多动手尝试呢。我再来贴两张GIF吧~

真实的程序中可不是这种哦!

由于录制GIF的时候为了考虑2M的限制而不得不将录制的帧数调低。所以就“卡顿”成了这样,有明显的“波涛”效果。

大家能够用源代码调试看看。



感谢您的訪问。希望对您有所帮助。 欢迎大家关注、收藏以及评论。


为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp


转载于:https://www.cnblogs.com/bhlsheji/p/5058788.html

好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效button相关推荐

  1. WPF程序在Win7系统下字体显示异常(解决方法记录)

    WPF程序在Win7系统下字体显示异常(解决方法记录) 问题描述 WPF程序在大部分客户电脑上正常运行,字体显示正常.仅在某个客户电脑上显示异常.并且不是所有字体都显示为异常状况.指定了具体字体的(如 ...

  2. 2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特效

    2023年春节祝福第二弹 送你一只守护兔,让它温暖每一个你! [html5 css3]画一只会动的兔子 目录 一.送你一只守护兔,效果图 二.前言 三.代码解释及部分特效教程 (1).css3 立体字 ...

  3. 【Android】Source Insight 基本用法 ( 导入 Android 源码 | 设置字体 | 显示行号 | 搜索功能 | 快捷键设置 )

    文章目录 一.导入 Android 源码 二.配置字体 三.显示行号 四.Tab 键字符个数 五.搜索功能 六.打开文件列表 七.快捷键设置 在 [Android 系统开发]使用 Source InS ...

  4. CSS 动画相关属性动态实例大全(82种),2023年祝福第二弹(送你一只守护兔)(下),守护兔源代码免费下载

    2023年春节祝福第二弹--送你一只守护兔(下) CSS 动画相关属性动态实例大全(82种).守护兔源代码免费下载 本文目录: 五.CSS3 动画相关属性实例大全 (1).CSS3的动画基本属性 (2 ...

  5. 微信小程序开发第二弹

    1.关于工具 微信官方提供了开发者工具,集成了开发调试.代码编辑及程序发布等功能.具体的文档在这里:微信官方文档,文档里面包含了该工具的基本操作,接下来就是下载工具了. 2.下载完工具之后,我们就可以 ...

  6. 潘多拉开发板STM32L475之LCD与GBK(含GB2312)字体显示

    一.GBK字体的内码获取 #include <stdio.h> #include <stdint.h> int main(void) { uint8_t *str=" ...

  7. 青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 3

    继上一次介绍了<神奇的六边形>的完整游戏开发流程后(可点击这里查看),这次将为大家介绍另外一款魔性游戏<跳跃的方块>的完整开发流程. (点击图片可进入游戏体验) 因内容太多,为 ...

  8. vue如何获取年月日_vue 学习笔记第二弹

    1. vue,学习第二弹! 1.x 版本中的 filterBy 指令,在2.x中已经被废除: filterBy - 指令 1 在 2.x 版本中手动实现筛选的方式: 筛选框绑定到 VM 实例中的 se ...

  9. 学习WPF——使用Font-Awesome图标字体

    学习WPF--使用Font-Awesome图标字体 原文:学习WPF--使用Font-Awesome图标字体 图标字体介绍 在介绍图标字体之前,不得不介绍图标格式ICON ICON是一种图标格式,我们 ...

最新文章

  1. MS:中山大学丁涛/吴忠道-肠道菌群调控血吸虫病传播媒介光滑双脐螺适生性的新机制...
  2. 产品开发的 11 宗罪
  3. Eclipse里如果看不到Attach Source按钮应该怎么办
  4. python入门代码大全-初学python有哪些可以临摹的小段练习代码素材?
  5. 单例模式(含多线程处理)
  6. Win7 ASP连接数据库“未找到提供程序.该程序可能未正确安装”问题
  7. bme280(HAL库)
  8. 51单片机流水灯现象2
  9. got-10k数据预处理
  10. java怎么下载我的世界手机版_我的世界JAVA版手机版
  11. ThinkPhP关联查询setEagerlyType遇到的问题
  12. ipad里excel文件计算机,ipad怎么看excel和Word?ipad查看Word和Excel文件
  13. carton num_Carton先生–世界上第一个卡通系列MadeWithUnity
  14. 网易云音乐排行榜接口取消后解决方法(网易云音乐小程序)
  15. Win 7/Win 8/Win 10/Windows Server 下安装和使用OpenSSH客户端
  16. ICP互联网信息服务(仅限互联网信息服务)
  17. FOURCC四字符码列表
  18. RealPlayer.11.6.0.14.748 新体验
  19. win11启动修复无法修复你的电脑解决方案
  20. 第一篇博客-小白的HTML知识点汇总(一)

热门文章

  1. 如何配置java环境_vscode配置java环境
  2. iphone手机设置自定义歌曲为铃声教程
  3. 为什么英语会有主格和宾格之分?比如:I、me
  4. Unity 2d 机器人的来回巡游
  5. 基于Android的校园二手交易平台App
  6. 自定义 View 之 QQ 个人主页视差动画效果
  7. 实现调用本地office打开在线文档功能
  8. 禅道类似软件_六大Jira项目管理软件替代品
  9. 【030】纪妖–正版妖怪百科资料库
  10. Canvas绘制箭头