LunarPresentation/Expressions/CanvasExpression.cs
(开头部分) 6KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Collections.Generic;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Xml;
using SHomeWorkshop.LunarPresentation.Interfaces;
using SHomeWorkshop.LunarPresentation.Widegets;
namespace SHomeWorkshop.LunarPresentation.Expressions
{
/// <summary>
/// 这是一个中间类。
/// 是为“要嵌入子面板的控件”准备的包装类——但不直接包括子面板。
/// 为使公式中可以嵌入子面板或其它内容,此类的Child是一个Canvas,
/// </summary>
public abstract class CanvasExpression : Expression, ICollapsed
{
public CanvasExpression(SubPanel rootPanel, SubPanel parentPanel, Editor editor)
: base(rootPanel, parentPanel, editor)
{
this.basePanel = new Canvas();
//this.basePanel.Focusable = false;
this.mainBorder.Child = basePanel;
//为鼠标提供的矩形。
baseRectangle = new Rectangle();
baseRectangle.Cursor = System.Windows.Input.Cursors.Hand;
baseRectangle.Stroke = Brushes.Transparent;
baseRectangle.Fill = Brushes.Transparent;
baseRectangle.MouseRightButtonDown += new MouseButtonEventHandler(baseRectangle_MouseRightButtonDown);
baseRectangle.MouseLeftButtonDown += new MouseButtonEventHandler(baseRectangle_MouseLeftButtonDown);
baseRectangle.MouseLeftButtonUp += new MouseButtonEventHandler(baseRectangle_MouseLeftButtonUp);
basePanel.Children.Add(baseRectangle);
Canvas.SetZIndex(baseRectangle, 0);
this.basePanel.SizeChanged += new System.Windows.SizeChangedEventHandler(basePanel_SizeChanged);
this.subPanels = new List<SubPanel>();
}
public UIElementCollection Children
{
get { return this.basePanel == null ? null : this.basePanel.Children; }
}
void baseRectangle_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
// 接收拖动来的公式。
Globals.DropExpression(this);
}
void baseRectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
//准备拖动公式。
Globals.dragSourceExpression = this;
this.Editor.SelectedExpression = this;
e.Handled = true;
}
后面还有 150 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。