日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
應用WPF圖像API正確方法講解

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

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

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

  1. protected virtual 
    void OnRender (
  2. DrawingContext 
    drawingContext
  3. )

但我們不能直接調用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. }
  24. }

(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. // 關閉文件流
  27. fileStream.Close();

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


當前文章:應用WPF圖像API正確方法講解
文章位置:http://m.5511xx.com/article/djggsop.html