LunarPresentation/Commands/NewDocument.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Xml;

namespace SHomeWorkshop.LunarPresentation.Commands
{
    public partial class Command
    {
        /// <summary>
        /// 新建文档。
        /// </summary>
        /// <param name="window">主窗口,传入Globals.MainWindow即可。</param>
        /// <param name="mainTabControl">主窗口上的主文件选项卡。</param>
        /// <param name="templateFilePath">此参数不为null时,会根据指定的模板创建文档。</param>
        public static void NewDocument(MainWindow window,
            TabControl mainTabControl, string templateFilePath = null)
        {
            //先看看有没有打开同名文件,如果有,Globals.newDocumentsCount+1,再试.
            List<string> fileNames = new List<string>();
            foreach (TabItem ti in mainTabControl.Items)
            {
                Editor e = ti as Editor;

                if (e != null)
                {
                    fileNames.Add(e.FileNameHeader.Text);
                }
            }

            string newFileDefName = "新文档 "
                + (++Globals.newDocumentsCount).ToString() + ".lpdoc";

            while (fileNames.Contains(newFileDefName))
            {
                Globals.newDocumentsCount++;
                newFileDefName = "新文档 "
                + (Globals.newDocumentsCount).ToString() + ".lpdoc";
            }

            Editor editor;

            if (templateFilePath == null)
            {
                editor = new Editor(window);
            }
            else
            {
                XmlDocument templateXmlDoc = new XmlDocument();

                //读出模板的文本。
                try
                {
                    LoadTemplateXmlDoc(templateXmlDoc, templateFilePath);
                }
                catch (Exception ex)
                {
后面还有 103 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。