LunarPresentation/Expressions/BaseText.cs

(开头部分) 63KB

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

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Xml;
using SHomeWorkshop.LunarPresentation.Adorners;
using SHomeWorkshop.LunarPresentation.Interfaces;

namespace SHomeWorkshop.LunarPresentation.Expressions
{
    public class BaseText : Expression, ICollapsed, IAutoWrap
    {
        public BaseText(SubPanel rootPanel, SubPanel parentPanel, Editor editor)
            : base(rootPanel, parentPanel, editor)
        {
            textBlock = new TextBlock() { Padding = BaseText.textPadding, TextWrapping = TextWrapping.Wrap };
            textBlock.Foreground = ExForeground;
            textBlock.PreviewMouseDown += new MouseButtonEventHandler(textBlock_PreviewMouseDown);
            this.mainBorder.Child = textBlock;

            textBlock.MouseLeftButtonDown +=
                new System.Windows.Input.MouseButtonEventHandler(textBox_MouseLeftButtonDown);
            textBlock.MouseLeftButtonUp +=
                new System.Windows.Input.MouseButtonEventHandler(textBox_MouseLeftButtonUp);
            textBlock.MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(textBox_MouseRightButtonDown);

            textBlock.MouseEnter += new System.Windows.Input.MouseEventHandler(textBox_MouseEnter);
            textBlock.MouseLeave += new System.Windows.Input.MouseEventHandler(textBox_MouseLeave);

            #region 绑定最大宽度。
            MultiBinding maxWidthBinding = new MultiBinding();

            Binding exFontSizeBinding = new Binding("ExFontSize");
            exFontSizeBinding.Source = editor;

            Binding wndWidthBinding = new Binding("ActualWidth");
            wndWidthBinding.Source = editor.BaseScrolledViewer;

            Binding indentBinding = new Binding("Indent");
            indentBinding.Source = this;

            Binding docAutoWrapBinding = new Binding("AutoWrap");
            docAutoWrapBinding.Source = editor;

            Binding selfAutoWrapBinding = new Binding("AutoWrap");
            selfAutoWrapBinding.Source = this;

            Binding maxTextWidthBinding = new Binding("MaxTextWidth");
            maxTextWidthBinding.Source = editor;

            maxWidthBinding.Bindings.Add(exFontSizeBinding);
            maxWidthBinding.Bindings.Add(wndWidthBinding);
            maxWidthBinding.Bindings.Add(indentBinding);
            maxWidthBinding.Bindings.Add(docAutoWrapBinding);
            maxWidthBinding.Bindings.Add(selfAutoWrapBinding);
后面还有 1726 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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