【WIN10】WIN2D——繪製文字
先看下截圖:

做了幾個效果:普通、倒影、陰影、歌詞。
普通效果代碼:
private void normal_Draw(Microsoft.Graphics.Canvas.UI.Xaml.CanvasControl sender, Microsoft.Graphics.Canvas.UI.Xaml.CanvasDrawEventArgs args)
{
CanvasTextFormat fmt = new CanvasTextFormat();
fmt.FontFamily = "Vladimir Script";
fmt.FontSize = ;
args.DrawingSession.DrawText("Hello Win2D", , , Color.FromArgb(, , , ), fmt);
}
倒影效果代碼,這個是使用scale變換做到的,使用scaleY=-1,就把它的Y值調換,達到我們的效果了,同時還必須設定圓心,然它會跑到其它地方了。
同時,要弄一個逐漸消失的效果,即要設透明度。
private void rotate_Draw(Microsoft.Graphics.Canvas.UI.Xaml.CanvasControl sender, Microsoft.Graphics.Canvas.UI.Xaml.CanvasDrawEventArgs args)
{ CanvasTextFormat fmt = new CanvasTextFormat();
fmt.FontFamily = "Vladimir Script";
fmt.FontSize = ; args.DrawingSession.DrawText("Hello Win2D", , , Color.FromArgb(, , , ), fmt); CanvasGradientStop[] gradientStops = new CanvasGradientStop[];
gradientStops[] = new CanvasGradientStop();
gradientStops[].Color = Color.FromArgb(, , , );
gradientStops[].Position =0f; gradientStops[] = new CanvasGradientStop();
gradientStops[].Color = Color.FromArgb(, , , );
gradientStops[].Position = 1f; CanvasLinearGradientBrush br = new CanvasLinearGradientBrush(sender, gradientStops);
br.StartPoint = new Vector2(, );
br.EndPoint = new Vector2(, ); args.DrawingSession.Transform = Matrix3x2.CreateScale(new Vector2(, -), new Vector2(, ));
args.DrawingSession.DrawText("Hello Win2D", , , br, fmt);
}
陰影效果。
這個是先畫一個模糊的背景,再在上面畫上清晰的文字。
private void shadow_Draw(Microsoft.Graphics.Canvas.UI.Xaml.CanvasControl sender, Microsoft.Graphics.Canvas.UI.Xaml.CanvasDrawEventArgs args)
{
CanvasTextFormat fmt = new CanvasTextFormat() { FontSize = , FontFamily = "Vladimir Script" }; var myBitmap = new CanvasRenderTarget(sender, , );
using (var ds = myBitmap.CreateDrawingSession())
{
ds.DrawText("Hello Win2D", , , Colors.Green, fmt);
} var blur = new GaussianBlurEffect
{
BlurAmount = ,
Source = myBitmap
}; args.DrawingSession.DrawImage(blur, , );
args.DrawingSession.DrawText("Hello Win2D", , , Colors.Green, fmt);
}
歌詞效果就相對比較簡單了。主要要注意的是,要把字符的換行設為NoWrapping。
private void song_Draw(Microsoft.Graphics.Canvas.UI.Xaml.CanvasControl sender, Microsoft.Graphics.Canvas.UI.Xaml.CanvasDrawEventArgs args)
{
var fmt = new CanvasTextFormat();
fmt.FontFamily = "微软雅黑";
fmt.FontSize = ;
fmt.WordWrapping = CanvasWordWrapping.NoWrap;
fmt.Options = CanvasDrawTextOptions.Clip; Rect rcNormal = new Rect(, , sender.ActualWidth, sender.ActualHeight);
args.DrawingSession.DrawText(songInfo_, rcNormal, Colors.Aqua, fmt); Rect rcSang = new Rect(, , songPos_, sender.ActualHeight);
args.DrawingSession.DrawText(songInfo_, rcSang, Colors.Yellow, fmt);
}
設一個定時器,動態改變 songPos_ 即可。
【WIN10】WIN2D——繪製文字的更多相关文章
- 【WIN10】WIN2D——基本圖形的繪製
		DEMO下載地址:http://yunpan.cn/c3iNuHFFAcr8h (提取码:8e48) 先看一個截圖: 繪製了一些基本形狀. DEMO的繪製代碼都非常簡單,不想在博客裡細說了,看代碼更為 ... 
- [UWP]用Win2D实现镂空文字
		1. 前言 之前用PointLight做了一个番茄钟,效果还不错,具体可见这篇文章: [UWP]使用PointLight并实现动画效果 后来试玩了Win2D,这次就用Win2D实现文字的镂空效果,配合 ... 
- [EmguCV|WinForm] 使用EmguCV內建直方圖工具繪製直方圖(Histogram)-直方圖(Histogram)系列 (1)
		https://dotblogs.com.tw/v6610688/archive/2013/12/20/emgucv_draw_histogram_histogrambox_histogramview ... 
- 使用Astah繪製UML圖形(转)
		http://www.dotblogs.com.tw/clark/archive/2015/02/12/149483.aspx 
- [R]  繪圖  Par 函数
		本篇內文主引用 https://zhuanlan.zhihu.com/p/21394945 之內容再稍加整理並參照下方有用資源 [rdocumentation] https://www.rdocume ... 
- Mac上如何把图片中的文字转换成word/pdf文字
		如何把图片文字转换成word文字? - 知乎 https://www.zhihu.com/question/25488536 在 OneNote for Mac 中插入的圖片複製文字 - OneNot ... 
- Android常用元件
		本文来源于 http://blog.csdn.net/wxhlinux/article/details/8601170#comments 1.4 Android應用程式元件1.4.1 Activi ... 
- Unity3D教程:茄子童萌會
		http://s.epb.idv.tw/han-shi-ku/unity Unity 0000 Unity3D學習之路 - C#學習筆記(一) 0001 Unity3D學習之路 - C#學習筆記(二) ... 
- morris的用法
		參數選項說明: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... 
随机推荐
- .net 里面打不出来ConfigurationManager
			ConfigurationManager 这个东东是读取配置文件时需要的. 首先要引用命名空间里面 using System.Configuration; 其次呢,在解决方案的引用里,单机右键进行添加 
- WINDOWS控制界面操作命令for WIN10
			Windows系统:开始--运行--命令大全: cmd--------CMD命令提示符 cleanmgr-------垃圾整理 compmgmt.msc---计算机管理 conf----------- ... 
- html5 canvas用图案填充形状
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ... 
- ASP.NET记录错误日志的方式
			程序记录错误日志是一种看起来对一般用户没什么作用,但对程序开发者用处很大的东西,它能查出错误或异常的程序马迹.那么,常用的记录错误日志的方式有哪些呢? 大多数情况下使用的是 1.直接记录为txt/xm ... 
- 20155303 实验三 敏捷开发与XP实践
			20155303 实验三 敏捷开发与XP实践 目录 一.编码标准 任务一:在IDEA中使用工具(Code->Reformate Code)格式化代码,并学习Code菜单的功能 二.敏捷开发与XP ... 
- nodejs 配置服务自启动
			1安装包 输入以下命令,安装需要的包 npm install node-windows -g 2编写自启动js 在目标server.js目录下新建auto_start_nodejs.js文件,将以下j ... 
- 总结WCF开发中遇到的几个问题
			最近的项目,需要用到WCF,在以前的工作中,经常是将WCF托管在IIS中,主要有几下几个原因: 第一:部署非常方便,和部署一个站点没什么区别: 第二:不受防火墙的影响,因为一般服务 ... 
- springboot整合Thymeleaf模板引擎
			引入依赖 需要引入Spring Boot的Thymeleaf启动器依赖. <dependency> <groupId>org.springframework.boot</ ... 
- 2013 ACM/ICPC 杭州网络赛C题
			题意:驴和老虎,在一个矩阵的两个格子里,有各自的起始方向.两者以相同的速度向前移动,前方不能走时驴总是向右,老虎总是向左.他们不能超出矩阵边界也不能走自己走过的格子(但可以走对方走过的格子).如果不能 ... 
- SNMP中MIB2所有主要节点
			系统组:system组包含以下对象集(.1.3.6.1.2.1.1): 对象名:sysDescr(1) OID:system.1 对象类型:DisplayString[255] 访问模式:只读 描述: ... 
