linux怎么查看本机内存大小
271
2023-05-17
如何使用WPF图像API来进行绘制,在实际使用中是经常要用到的一个技巧。作为一个初学者来说,掌握这一技巧的应用对以后的学习有非常重要的作用。#t#
首先,由于WPF中不象GDI+中有Graphics对象,因此你无法使用Graphics进行绘图了,取而代之的是:DrawingContext;类似地,GDI+中的OnPaint已被OnRender取代。
其次,UIElement有一个OnRendar方法,它的定义是:
protected virtual
void OnRender (DrawingContext
drawingContext )但我们不能直接调用OnRender方法,也不能直接创建DrawingContext实例,但可以利用 DrawingGroup.Open 和DrawingVisual.RenderOpen。
这里举两个WPF图像API的使用例子:
(1)自定义绘制Canvas:
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)); } } } 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.(2)保存图片到文件:
protected void SavePhoto
(string fileName) { DrawingVisual drawingVisual=
new DrawingVisual(); DrawingContext drawingContext=
drawingVisual.RenderOpen(); // 画矩形 Rect rect = newRect(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=
newRenderTargetBitmap((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=
newFileStream(fileName,
FileMode.Create, FileAccess.ReadWrite); encoder.Save(fileStream); // 关闭文件流 fileStream.Close(); } 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.35.36.37.38.39.40.41.以上就是WPF图像API进行绘制的相关方法介绍。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~