爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2230|回复: 3

C#代码如何实现保存为工程文件mip?

[复制链接]

新浪微博达人勋

发表于 2015-4-14 10:40:30 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
C#代码如何实现保存为工程文件mip?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-14 23:36:15 | 显示全部楼层
MeteoInfo里保存和加载工程文件的代码:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Xml;
  7. using System.IO;
  8. using System.Threading;
  9. using System.Drawing;
  10. using System.Drawing.Drawing2D;
  11. using MeteoInfoC.Map;
  12. using MeteoInfoC.Layer;
  13. using MeteoInfoC.Shape;
  14. using MeteoInfoC.Legend;
  15. using MeteoInfoC.Drawing;
  16. using MeteoInfoC.Data.MapData;
  17. using MeteoInfo.Forms;
  18. using MeteoInfoC.Projections;

  19. namespace MeteoInfo.Classes
  20. {
  21.     /// <summary>
  22.     /// MeteoInfo project file
  23.     /// </summary>
  24.     class clsProjectFile
  25.     {
  26.         #region private variables
  27.         private string m_FileName;

  28.         #endregion

  29.         #region Constructor
  30.         public clsProjectFile()
  31.         {
  32.             m_FileName = "";
  33.         }

  34.         #endregion

  35.         #region Properties
  36.         /// <summary>
  37.         /// Get or set project filename
  38.         /// </summary>
  39.         public string FileName
  40.         {
  41.             get { return m_FileName; }
  42.             set { m_FileName = value; }
  43.         }

  44.         #endregion

  45.         #region Method

  46.         #region Save project
  47.         /// <summary>
  48.         /// Save project file
  49.         /// </summary>
  50.         /// <param name="aFile"></param>
  51.         public void SaveProjFile(string aFile)
  52.         {
  53.             m_FileName = aFile;

  54.             XmlDocument doc = new XmlDocument();
  55.             doc.LoadXml("<MeteoInfo name='" + Path.GetFileNameWithoutExtension(aFile) + "' type='projectfile'></MeteoInfo>");
  56.             XmlElement root = doc.DocumentElement;

  57.             //Add language element
  58.             AddLanguageElement(ref doc, root, Thread.CurrentThread.CurrentUICulture.Name);

  59.             ////Add MapView content
  60.             //frmMain.CurrentWin.MapDocument.ActiveMapFrame.MapView.ExportProjectXML(ref doc, root, m_FileName);

  61.             //Add LayersLegend content
  62.             frmMain.CurrentWin.MapDocument.MapLayout.UpdateMapFrameOrder();
  63.             frmMain.CurrentWin.MapDocument.ExportProjectXML(ref doc, root, m_FileName);

  64.             //Add MapLayout content
  65.             frmMain.CurrentWin.MapDocument.MapLayout.ExportProjectXML(ref doc, root);            

  66.             //Save project file            
  67.             doc.Save(aFile);
  68.         }        

  69.         private void AddLanguageElement(ref XmlDocument m_Doc, XmlElement parent, string name)
  70.         {
  71.             XmlElement Language = m_Doc.CreateElement("Language");
  72.             XmlAttribute LanName = m_Doc.CreateAttribute("Name");

  73.             LanName.InnerText = name;
  74.             Language.Attributes.Append(LanName);

  75.             parent.AppendChild(Language);
  76.         }        

  77.         #endregion

  78.         #region Load project
  79.         /// <summary>
  80.         /// Load project file
  81.         /// </summary>
  82.         /// <param name="aFile"></param>
  83.         public void LoadProjFile(string aFile)
  84.         {
  85.             m_FileName = aFile;

  86.             XmlDocument doc = new XmlDocument();
  87.             doc.Load(aFile);
  88.             XmlElement root = doc.DocumentElement;

  89.             Environment.CurrentDirectory = Path.GetDirectoryName(aFile);

  90.             //Load elements
  91.             frmMain.CurrentWin.MapDocument.ActiveMapFrame.MapView.LockViewUpdate = true;
  92.             LoadLanguageElement(root);         
  93.             //Load map frames content
  94.             frmMain.CurrentWin.MapDocument.ImportProjectXML(root);
  95.             frmMain.CurrentWin.MapDocument.MapLayout.MapFrames = frmMain.CurrentWin.MapDocument.MapFrames;
  96.             //Load MapLayout content
  97.             frmMain.CurrentWin.MapDocument.MapLayout.ImportProjectXML(root);            
  98.             frmMain.CurrentWin.MapDocument.ActiveMapFrame.MapView.LockViewUpdate = false;
  99.             frmMain.CurrentWin.MapDocument.ActiveMapFrame.MapView.PaintLayers();            
  100.         }        

  101.         private void LoadLanguageElement(XmlElement parent)
  102.         {
  103.             XmlNode Language = parent.GetElementsByTagName("Language")[0];
  104.             if (Language != null)
  105.                 Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(Language.Attributes["Name"].InnerText);
  106.             //frmMain.CurrentWin.ApplyResource(false);
  107.         }        

  108.         #endregion
  109.         
  110.         #endregion
  111.     }
  112. }

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-15 08:26:41 | 显示全部楼层
MeteoInfo 发表于 2015-4-14 23:36
MeteoInfo里保存和加载工程文件的代码:

谢谢老师答复,真心感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-16 07:40:10 | 显示全部楼层
这是菊花吗??
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表