如何使用WPF图像API来进行绘制,在实际使用中是经常要用到的一个技巧。作为一个初学者来说,掌握这一技巧的应用对以后的学习有非常重要的作用。#t#

首先,由于WPF中不象GDI+中有Graphics对象,因此你无法使用Graphics进行绘图了,取而代之的是:DrawingContext;类似地,GDI+中的OnPaint已被OnRender取代。
其次,UIElement有一个OnRendar方法,它的定义是:
但我们不能直接调用OnRender方法,也不能直接创建DrawingContext实例,但可以利用 DrawingGroup.Open 和DrawingVisual.RenderOpen。
这里举两个WPF图像API的使用例子:
(1)自定义绘制Canvas:
- using System;
 - using System.Collections
 
.Generic;- using System.Text;
 - using System.Windows.Controls;
 - using System.Windows.Media;
 - using System.Windows;
 - using System.Globalization;
 - namespace BrawDraw.Com.Test
 - {
 - class CanvasCustomPaint :
 
Canvas- {
 - protected override void
 
OnRender(DrawingContext dc)- {
 - base.OnRender(dc);
 - //画矩形
 - dc.DrawRectangle(Brushes
 
.Red, new Pen(Brushes.Blue, 1),- new Rect(new Point(20, 20),
 
new Size(100, 100)));- //画文字
 - dc.DrawText(new FormattedText
 
("Hello, World!", CultureInfo.
CurrentCulture,- FlowDirection.LeftToRight, new
 
Typeface("Arial"), 40, Brushes.
Orange),- new Point(50,60));
 - }
 - }
 - }
 
(2)保存图片到文件:
- protected void SavePhoto
 
(string fileName)- {
 - DrawingVisual drawingVisual =
 
new DrawingVisual();- DrawingContext drawingContext =
 
drawingVisual.RenderOpen();- // 画矩形
 - Rect rect = new Rect(new
 
Point(160, 100), new Size(320, 80));- drawingContext.DrawRectangle
 
(Brushes.LightBlue, (Pen)null, rect);- // 画文字
 - drawingContext.DrawText(
 - new FormattedText("Hello, world",
 - CultureInfo.GetCultureInfo("en-us"),
 - FlowDirection.LeftToRight,
 - new Typeface("Verdana"),
 - 36, Brushes.Black),
 - new Point(100, 60));
 - drawingContext.Close();
 - // 利用RenderTargetBitmap对象,以保存图片
 - RenderTargetBitmap renderBitmap =
 
new RenderTargetBitmap((int)this.Width,
(int)this.Height, 96, 96,
PixelFormats.Pbgra32);- renderBitmap.Render(drawingVisual);
 - // 利用JpegBitmapEncoder,
 
对图像进行编码,以便进行保存- JpegBitmapEncoder encoder =
 
new JpegBitmapEncoder();- encoder.Frames.Add(BitmapFrame.
 
Create(renderBitmap));- // 保存文件
 - FileStream fileStream =
 
new FileStream(fileName,
FileMode.Create, FileAccess.ReadWrite);- encoder.Save(fileStream);
 - // 关闭文件流
 - fileStream.Close();
 - }
 
以上就是WPF图像API进行绘制的相关方法介绍。
                文章题目:应用WPF图像API正确方法讲解
                
                文章来源:http://www.csdahua.cn/qtweb/news3/374553.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网