[Win8]Windows8开发笔记(四):画刷介绍以及如何实现实现歌词动态变色显示
来源:互联网 发布:麻将教程新手入门软件 编辑:程序博客网 时间:2024/06/11 07:50
新建一个项目,叫做TestBrush。
在MainPage.xaml下,输入以下代码:
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" FontSize="100" Text="只是说一句 好久不见"/>
可以看见屏幕上出现了如下文字:
接下来就是笔刷的加入。
- SolidColorBrush
先来看一下SolidColorBrush的效果。将代码做如下修改:
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" FontSize="100" Text="只是说一句 好久不见"> <TextBlock.Foreground> <SolidColorBrush Color="Red"/> </TextBlock.Foreground> </TextBlock>
可以看见效果就是文字的颜色变成了红色了,SolidColorBrush就是全填充的意思。
- ImageBrush
再看一下下一个笔刷:ImageBrush,也就是图片笔刷的使用。
比如一张图片6.jpg,代码如下:
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" FontSize="100" Text="只是说一句 好久不见"> <TextBlock.Foreground> <ImageBrush ImageSource="6.jpg"/> </TextBlock.Foreground> </TextBlock>
效果就是:
可以看出来效果就是使用图片填充。
- LinearGradientBrush
简单来说就是渐变笔刷,使用方法比前两种略复杂,需要定义颜色的偏移量实现渐变的效果。
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" FontSize="100" Text="只是说一句 好久不见"> <TextBlock.Foreground> <LinearGradientBrush> <GradientStop Color="Red" Offset="0"/> <GradientStop Color="Blue" Offset="1"/> </LinearGradientBrush> </TextBlock.Foreground> </TextBlock>
效果如下图:
如此便实现了渐变的效果,offset偏移量默认是0,可以在0~1之间任意设置实现需要的效果。
下面来使用这个渐变笔刷做一个歌词动态显示的功能。
首先,将渐变笔刷中的stop定义为两个颜色相同的点,以此来实现颜色的立即分割:
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" FontSize="100" Text="只是说一句 好久不见"> <TextBlock.Foreground> <LinearGradientBrush> <GradientStop Color="Yellow" Offset="0"/> <GradientStop Color="Yellow" Offset="0.6"/> <GradientStop Color="Blue" Offset="0.6"/> <GradientStop Color="Blue" Offset="1"/> </LinearGradientBrush> </TextBlock.Foreground> </TextBlock>
效果就是那种歌词的分色效果了:
但是这样还是没有动起来啊,动态显示只能利用后台代码来实现了。
要改这个值只能用 name来获取这两个元素,但是这个控件GradientStop并没有name属性啊?!
没关系,我们可以用x:name。如果控件有name属性,可以用name和x:name,但是如果一个控件没有name属性,那就只能用x:name。
修改后的代码如下:
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" FontSize="100" Text="只是说一句 好久不见"> <TextBlock.Foreground> <LinearGradientBrush> <GradientStop Color="Yellow" Offset="0"/> <GradientStop x:Name="stop1" Color="Yellow" Offset="0.6"/> <GradientStop x:Name="stop2" Color="Blue" Offset="0.6"/> <GradientStop Color="Blue" Offset="1"/> </LinearGradientBrush> </TextBlock.Foreground> </TextBlock>接下来我们跳转到后台的代码页面。MainPage.xaml.cs文件。
接下来我们使用xaml中推荐使用的定时器:DispatcherTimer。
有一个属性叫做Interval,是一个TimeSpan,也就是一个时间跨度。
定义定时器没200毫秒执行一次。
DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromMilliseconds(200);
指定完了之后,还需要定义Tick时间,以便让其知道滴答一下之后自己要做什么。
完整的代码如下:
protected override void OnNavigatedTo(NavigationEventArgs e) { DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromMilliseconds(200); timer.Tick += timer_tick; timer.Start();//启动计时器 } private void timer_tick(object sender, object e) { stop1.Offset += 0.01; stop2.Offset += 0.01; }
此时运行,便可以看见渐变的歌词显示了。
- [Win8]Windows8开发笔记(四):画刷介绍以及如何实现实现歌词动态变色显示
- [Win8]Windows8开发笔记(五):变换与投射以及制作旋转的头像
- [Win8]Windows8开发笔记(三):代码读取图片动态生成页面
- [Win8]Windows8开发笔记(七):页面样式的相关介绍
- [Win8]Windows8开发笔记(十一):动画故事版 StoryBoard的入门介绍
- 歌词滚动效果在Win8 Store 开发中的实现
- [Win8]Windows8开发笔记(八):数据绑定的基础
- Win8应用开发介绍(四) Win8应用开发步骤
- Win8 应用开发介绍(四)
- 如何实现类似KTV中屏幕歌词显示
- 歌词显示的技术实现
- Android实现歌词滑动显示
- [Win8]Windows8开发入门(四):文件访问和选取器
- javascript动态实现div变色
- [Win8]如何使用Visual Studio2012进行Windows8项目开发
- [Win8]如何使用Visual Studio2012进行Windows8项目开发
- [Win8]Windows8开发笔记(一):猜数字大小的游戏
- [Win8]Windows8开发笔记(二):三种基础的布局控件
- 使用autoLayout实现适配iPhone5
- CTabCtrl在配置对话框中的应用
- 关闭/刷新 当前页面 时触发的js函数
- 动态口令与数字证书简介
- tslib-1.4移植记录
- [Win8]Windows8开发笔记(四):画刷介绍以及如何实现实现歌词动态变色显示
- An unexpected token\"BEGIN-OF-STATEMENT".\Expected tokens may include: "<space>"
- 小记~powershell 查看移动的网站集的大小
- [Solver] SPOJ FINFRAC
- linux上安装了qt-sdk-linux-x86-opensource-2010.05.1
- Opencv (Opencv2)结合MFC学习数字图像处理---图片解码(2)
- The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode
- 调用系统彩信功能,发送彩信
- java 枚举 demo