成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

應用WPF圖像API正確方法講解

開發(fā) 開發(fā)工具
當我們在實際開發(fā)中,經(jīng)常會遇到這樣的一種情況,就是:WPF圖像API進行圖像的繪制,而不是使用XAML來實現(xiàn)這一操作。

如何使用WPF圖像API來進行繪制,在實際使用中是經(jīng)常要用到的一個技巧。作為一個初學者來說,掌握這一技巧的應用對以后的學習有非常重要的作用。#t#

首先,由于WPF中不象GDI+中有Graphics對象,因此你無法使用Graphics進行繪圖了,取而代之的是:DrawingContext;類似地,GDI+中的OnPaint已被OnRender取代。

其次,UIElement有一個OnRendar方法,它的定義是:

  1. protected virtual 
    void OnRender (  
  2. DrawingContext 
    drawingContext  

但我們不能直接調(diào)用OnRender方法,也不能直接創(chuàng)建DrawingContext實例,但可以利用 DrawingGroup.Open 和DrawingVisual.RenderOpen。

這里舉兩個WPF圖像API的使用例子:

(1)自定義繪制Canvas:

  1. using System;  
  2. using System.Collections
    .Generic;  
  3. using System.Text;  
  4. using System.Windows.Controls;  
  5. using System.Windows.Media;  
  6. using System.Windows;  
  7. using System.Globalization;  
  8. namespace BrawDraw.Com.Test  
  9. {  
  10. class CanvasCustomPaint :
     Canvas  
  11. {  
  12. protected override void 
    OnRender(DrawingContext dc)  
  13. {  
  14. base.OnRender(dc);  
  15. //畫矩形  
  16. dc.DrawRectangle(Brushes
    .Red, new Pen(Brushes.Blue, 1),   
  17. new Rect(new Point(20, 20), 
    new Size(100, 100)));  
  18. //畫文字  
  19. dc.DrawText(new FormattedText
    ("Hello, World!", CultureInfo.
    CurrentCulture,   
  20. FlowDirection.LeftToRight, new 
    Typeface("Arial"), 40, Brushes.
    Orange),  
  21. new Point(50,60));  
  22. }  
  23. }  

(2)保存圖片到文件:

  1. protected void SavePhoto
    (string fileName)  
  2. {  
  3. DrawingVisual drawingVisual = 
    new DrawingVisual();  
  4. DrawingContext drawingContext = 
    drawingVisual.RenderOpen();  
  5. // 畫矩形  
  6. Rect rect = new Rect(new 
    Point(160, 100), new Size(320, 80));  
  7. drawingContext.DrawRectangle
    (Brushes.LightBlue, (Pen)null, rect);  
  8. // 畫文字  
  9. drawingContext.DrawText(  
  10. new FormattedText("Hello, world",  
  11. CultureInfo.GetCultureInfo("en-us"),  
  12. FlowDirection.LeftToRight,  
  13. new Typeface("Verdana"),  
  14. 36, Brushes.Black),  
  15. new Point(100, 60));  
  16. drawingContext.Close();  
  17. // 利用RenderTargetBitmap對象,以保存圖片  
  18. RenderTargetBitmap renderBitmap = 
    new RenderTargetBitmap((int)this.Width,
     (int)this.Height, 96, 96, 
    PixelFormats.Pbgra32);  
  19. renderBitmap.Render(drawingVisual);  
  20. // 利用JpegBitmapEncoder,
    對圖像進行編碼,以便進行保存  
  21. JpegBitmapEncoder encoder = 
    new JpegBitmapEncoder();  
  22. encoder.Frames.Add(BitmapFrame.
    Create(renderBitmap));  
  23. // 保存文件  
  24. FileStream fileStream = 
    new FileStream(fileName, 
    FileMode.Create, FileAccess.ReadWrite);  
  25. encoder.Save(fileStream);  
  26. // 關(guān)閉文件流  
  27. fileStream.Close();  
  28. }  

以上就是WPF圖像API進行繪制的相關(guān)方法介紹。

責任編輯:曹凱 來源: CSDN
相關(guān)推薦

2009-12-23 14:19:07

WPF單向綁定

2009-12-28 17:26:17

WPF可視化

2009-12-25 10:39:49

WPF應用程序關(guān)閉

2009-12-24 16:11:07

WPF圖像處理

2009-12-23 18:06:25

WPF模板

2009-12-25 17:39:01

WPF驗證

2010-03-05 15:01:29

Python解析XML

2010-02-25 09:13:34

WCF異步調(diào)用

2009-12-29 13:51:33

WPF Applica

2009-12-23 10:13:20

WPF體系架構(gòu)

2010-03-05 16:51:01

Python程序轉(zhuǎn)為E

2009-12-24 15:53:19

WPF API

2009-12-23 15:16:52

WPF數(shù)據(jù)綁定

2009-12-24 13:51:49

WPF文檔打印

2010-02-22 15:26:57

Python對象

2009-12-28 11:09:25

WPF啟動參數(shù)

2009-09-28 11:30:53

Hibernate核心

2010-02-05 17:49:24

C++常量引用

2009-12-24 15:59:46

WPF圖像格式

2010-02-01 15:26:44

C++ inline函
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91在线精品一区二区 | 中文字幕四虎 | 亚洲伊人精品酒店 | 日韩欧美精品在线播放 | 欧美综合国产精品久久丁香 | 亚洲国产偷 | 伊人伊人伊人 | 久久久精品网 | 国产农村妇女毛片精品久久麻豆 | 国产精品视频一区二区三区 | 亚洲精品久久久一区二区三区 | 国久久 | 日本一卡精品视频免费 | 在线观看国产91 | 97久久久 | 午夜三区 | 色综合99 | 日韩欧美一级片 | 国产精品永久久久久久久www | 免费久久视频 | 国产精品一区二区在线播放 | 成人午夜精品一区二区三区 | 亚洲啊v在线 | 毛片网站在线观看 | 请别相信他免费喜剧电影在线观看 | 久久精品一区 | 成人av网站在线观看 | 超碰97免费 | 午夜精品三区 | 久久亚| 免费永久av | 中文字幕亚洲欧美日韩在线不卡 | 国产高清性xxxxxxxx | 亚洲二区在线 | 久久99精品久久久 | 麻豆av免费观看 | ririsao久久精品一区 | 少妇黄色 | 国产精品久久久久久久久久三级 | 欧美精品久久久久 | 91一区二区三区 |