LunarPresentation/Expressions/MSExpression.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
namespace SHomeWorkshop.LunarPresentation.Expressions
{
/// <summary>
/// “MS”是指Master SubPanel/Slave SubPanel。
/// 这个类是一个中间类,适用于嵌入两个子面板的情况。
/// </summary>
public abstract class MSExpression : StackPanelExpression
{
public MSExpression(SubPanel rootPanel, SubPanel parentPanel, Editor editor)
: base(rootPanel, parentPanel, editor)
{
this.subPanels = new List<SubPanel>();
InitializeMSPanels(rootPanel, editor);
RefreshSubPanelRelatios();
}
/// <summary>
/// 子类应根据需要覆盖本方法,例如:Bracket就需要在两个面板之间添加一个
/// “BracketPanel”来绘制一个括弧。
/// </summary>
/// <param name="rootPanel">根面板。</param>
/// <param name="editor">编辑器。</param>
protected virtual void InitializeMSPanels(SubPanel rootPanel, Editor editor)
{
this.basePanel.Orientation = Orientation.Horizontal;
this.masterPanel = new SubPanel(rootPanel, this.ParentPanel, editor, this);
this.masterPanel.BasePanel.VerticalAlignment = VerticalAlignment.Center;
this.basePanel.Children.Add(this.masterPanel);
this.slavePanel = new SubPanel(rootPanel, this.ParentPanel, editor, this);
this.slavePanel.BasePanel.VerticalAlignment = VerticalAlignment.Center;
this.basePanel.Children.Add(this.slavePanel);
RefreshSubPanelRelatios();
}
protected SubPanel masterPanel;
protected SubPanel MasterPanel
{
get { return masterPanel; }
}
protected SubPanel slavePanel;
public SubPanel SlavePanel
{
get { return slavePanel; }
}
/// <summary>
/// SubPanels属性用以在公式各层间导航,不是所有公式内部都嵌入子面板,
/// 因此不是所有公式均需要本方法。
///
/// 在实际公式类,此一方法应设置:FirstSubPanel/LastSubPanel/SubPanels
后面还有 24 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。