当前位置: 首页>>代码示例>>C#>>正文


C# Metafile类代码示例

本文整理汇总了C#中System.Drawing.Imaging.Metafile的典型用法代码示例。如果您正苦于以下问题:C# Metafile类的具体用法?C# Metafile怎么用?C# Metafile使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


Metafile类属于System.Drawing.Imaging命名空间,在下文中一共展示了Metafile类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Form1

//引入命名空间
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

// for Marshal.Copy
using System.Runtime.InteropServices; 

public class Form1 : Form
{
    private Metafile metafile1;
    private Graphics.EnumerateMetafileProc metafileDelegate;
    private Point destPoint;
    public Form1()
    {
        metafile1 = new Metafile(@"C:\Test.wmf");
        metafileDelegate = new Graphics.EnumerateMetafileProc(MetafileCallback);
        destPoint = new Point(20, 10);
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        e.Graphics.EnumerateMetafile(metafile1, destPoint, metafileDelegate);
    }
    private bool MetafileCallback(
       EmfPlusRecordType recordType,
       int flags,
       int dataSize,
       IntPtr data,
       PlayRecordCallback callbackData)
    {
        byte[] dataArray = null;
        if (data != IntPtr.Zero)
        {
            // Copy the unmanaged record to a managed byte buffer 
            // that can be used by PlayRecord.
            dataArray = new byte[dataSize];
            Marshal.Copy(data, dataArray, 0, dataSize);
        }

        metafile1.PlayRecord(recordType, flags, dataSize, dataArray);

        return true;
    }

    static void Main()
    {
        Application.Run(new Form1());
    }
}
开发者ID:.NET开发者,项目名称:System.Drawing.Imaging,代码行数:50,代码来源:Metafile

示例2: new Metafile(String fileName, hdc)

/*
GDI+ Programming in C# and VB .NET
by Nick Symmonds

Publisher: Apress
ISBN: 159059035X
*/
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace MetaFile_c
{
    /// <summary>
    /// Summary description for MetaFile.
    /// </summary>
    public class MetaFile : System.Windows.Forms.Form
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components = null;

        public MetaFile()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null) 
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
      // 
      // MetaFile
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(292, 273);
      this.MaximizeBox = false;
      this.MinimizeBox = false;
      this.Name = "MetaFile";
      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
      this.Text = "MetaFile";
      this.Load += new System.EventHandler(this.MetaFile_Load);

       }
        #endregion

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main() 
        {
            Application.Run(new MetaFile());
        }

    private void MetaFile_Load(object sender, System.EventArgs e)
    {
      // Create a graphics object from the forms graphics object
      // and get the handle to it.
      using (Graphics FormGraphics = this.CreateGraphics())
      {
        IntPtr hdc = FormGraphics.GetHdc();

        // Now create a blank metafile using the graphics handle
        // This is the metafile where all drawing instructions will 
        // be recorded.
        Metafile mf = new Metafile("mymeta.emf", hdc);

        // In order to record drawing commands we need to draw on something
        // That something is a new graphics object
        using (Graphics MetaGraphics = Graphics.FromImage(mf))
        {
          using ( mf )
          {
            MetaGraphics.SmoothingMode = SmoothingMode.AntiAlias;

            //Now we are ready to draw on the metagraphics object
            MetaGraphics.DrawRectangle(Pens.Black, 10, 10, 100, 50 );
            MetaGraphics.DrawLine(Pens.Orange, 10, 70, 150, 100 );
          }
        }
        FormGraphics.ReleaseHdc(hdc);
      }
    }

    protected override void OnPaint( PaintEventArgs e )
    {
      Metafile mf = new Metafile("mymeta.emf");
      e.Graphics.DrawImage(mf, new Point(10,10));
    }


    }
}
开发者ID:C#程序员,项目名称:System.Drawing.Imaging,代码行数:125,代码来源:Metafile


注:本文中的System.Drawing.Imaging.Metafile类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。