LunarMind/TestEditor/QuestionEditor.cs

(开头部分) 20KB

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

using System;
using System.Collections.Generic;
using ICSharpCode.AvalonEdit;
using ICSharpCode.AvalonEdit.Highlighting;
using System.IO;
using System.Xml;
using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.AvalonEdit.Folding;
using System.Windows.Input;
using System.Windows.Threading;
using ICSharpCode.AvalonEdit.Search;
using System.Windows;
using System.Text;
using System.Windows.Data;
using SHomeWorkshop.LunarMind;

namespace LunarSF.SHomeWorkshop.LunarMind
{
    /// <summary>
    /// 创建者:杨震宇
    /// 创建时间:2013年3月29日
    /// 
    /// 说明:试题编辑器类。
    /// </summary>
    public class QuestionEditor : TextEditor
    {
        private static IHighlightingDefinition customHighlighting;

        static QuestionEditor()
        {
            // 载入代码高亮的定义文件
            Stream s = typeof(MainWindow).Assembly.GetManifestResourceStream("SHomeWorkshop.LunarMind.TestEditor.CustomHighlighting.xshd");
            if (s != null)
            {
                using (XmlReader reader = new XmlTextReader(s))
                {
                    customHighlighting = ICSharpCode.AvalonEdit.Highlighting.Xshd.HighlightingLoader.Load(reader, HighlightingManager.Instance);
                }
            }
        }

        public QuestionEditor()
        {
            this.WordWrap = true;
            this.ShowLineNumbers = true;
            this.Options.ShowColumnRuler = true;
            this.Options.ShowSpaces = true;
            this.Options.ShowTabs = true;
            this.Options.WordWrapIndentation = this.FontSize * 8;
            this.Options.HighlightCurrentLine = true;

            //括弧替换
            //this.PreviewKeyDown += QuestionEditor_PreviewKeyDown;
            this.PreviewTextInput += QuestionEditor_PreviewTextInput;

            #region 代码高亮处理
            HighlightingManager.Instance.RegisterHighlighting("Custom Highlighting", new string[] { ".LunarTest" }, customHighlighting);
            this.SyntaxHighlighting = HighlightingManager.Instance.GetDefinitionByExtension(".LunarTest");
            this.TextArea.IndentationStrategy = new ICSharpCode.AvalonEdit.Indentation.DefaultIndentationStrategy();

后面还有 452 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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