新建一个项目,叫做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开发笔记(四):画刷介绍以及如何实现实现歌词动态变色显示相关推荐

  1. 【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩:纹理映射技术(二)...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 作者:毛星云(浅墨)    邮箱: happylifemxy@163.com 本篇文章里,我们首先对Direct3D之中固定功能流水线中的 ...

  2. 【Visual C++】游戏开发笔记四十六 浅墨DirectX教程十四 模板测试与镜面特效专场

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处.   文章链接: http://blog.csdn.net/zhmxy555/article/details/8632184 作者:毛星云( ...

  3. 【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩 纹理映射技术 二

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  4. 【Visual C++】游戏开发笔记四十一 浅墨DirectX教程之九 为三维世界添彩:纹理映射技术(一)...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8523341 作者:毛星云(浅墨 ...

  5. 【Visual C++】游戏开发笔记四十 浅墨DirectX教程之八 绘制真实质感的三维世界:光照与材质专场...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 作者:毛星云(浅墨)    邮箱: happylifemxy@163.com 本篇文章里,我们对Direct3D之中固定功能流水线中的3D ...

  6. 【Visual C++】游戏开发笔记四十七 浅墨DirectX教程十五 翱翔于三维世界 摄像机的实现

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 本系列文章由zhm ...

  7. 【Visual C++】游戏开发笔记四十 浅墨DirectX教程之八 绘制真实质感的三维世界 光照与材质专场

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  8. 【Visual C++】游戏开发笔记四十四 浅墨DirectX教程十二 网格模型和X文件使用面面观

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8586540 作者:毛星云(浅墨 ...

  9. 【Visual C++】游戏开发笔记四十七 浅墨DirectX教程十五 翱翔于三维世界:摄像机的实现...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhmxy555/article/details/8657656 作者:毛星云(浅墨) ...

最新文章

  1. 当前上下文中不存在viewbag
  2. PHP课程20161114
  3. QT判断该文件是否存在
  4. MIT 6.031 Software Construction Lab1-Part2-Personal-Art
  5. 20应用统计考研复试要点(part7)--统计学
  6. 程序员过关斩将--搞定秒杀,只需要这几步!!
  7. java.sql.SQLException: ORA-01438: 值大于此列指定的允许精确度
  8. (JAVA)线程之lock和死锁(例)
  9. Android面试基础一
  10. 推荐系统评估:你的推荐系统足够好吗?
  11. Uncaught TypeError: Illegal invocation问题解决方法
  12. 2016 Google中国开发者大会游记
  13. 部署AIX nmon监控脚本
  14. 如何设置修改 Windows 7 开机启动项
  15. 可以边玩游戏边学编程的手游盘点
  16. java实现银行存款问题,字符串型的数字转为银行所用单位('零','壹','贰','叁','肆','伍','陆','柒','捌','玖')
  17. 湖南云畅网络科技有限公司携手伙伴,共筑长三角数字经济产业新高地
  18. 单片机开发---ESP32S3移植NES模拟器(二)
  19. 【简单工厂设计模式】
  20. Unity半透明特效原理讲解(为什么半透明设置渲染顺序和深度写入这么重要)

热门文章

  1. 数据仓库架构分层设计
  2. mysql 数据库还原_MySQL数据库备份和还原的常用命令
  3. 年薪高达 267 万元,ChatGPT 催生高薪职业,无需编程背景
  4. ubuntu安装realtek网卡驱动rtl8821ce
  5. 移动硬盘“文件或目录损坏,无法读取”解决方案
  6. vue-canvas生成海报图
  7. 短域名有什么特点和优势?
  8. 【ArcGIS微课1000例】0059:三种底图影像调色技巧案例教程
  9. nginx格式化工具-nginxfmt
  10. 像好几天没吃东西似的抢着吃