mirror of
https://gitee.com/langsisi_admin/serein-flow
synced 2026-03-18 07:26:34 +08:00
Workbench项目中,优化了节点的复制、粘贴,加载。
This commit is contained in:
@@ -15,7 +15,21 @@ using System.Threading;
|
||||
|
||||
namespace Serein.Workbench.Node.View
|
||||
{
|
||||
internal static class MyUIFunc
|
||||
{
|
||||
public static Pen CreateAndFreezePen()
|
||||
{
|
||||
// 创建Pen
|
||||
Pen pen = new Pen(Brushes.Black, 1);
|
||||
|
||||
// 冻结Pen
|
||||
if (pen.CanFreeze)
|
||||
{
|
||||
pen.Freeze();
|
||||
}
|
||||
return pen;
|
||||
}
|
||||
}
|
||||
|
||||
public class ParamsArgControl: Shape
|
||||
{
|
||||
@@ -27,8 +41,6 @@ namespace Serein.Workbench.Node.View
|
||||
this.MouseMove += ParamsArgControl_MouseMove;
|
||||
this.MouseLeave += ParamsArgControl_MouseLeave;
|
||||
AddOrRemoveParamsTask = AddAsync;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -84,9 +96,9 @@ namespace Serein.Workbench.Node.View
|
||||
// 圆形部分
|
||||
var ellipse = new EllipseGeometry(circlePoint, connectorSize / 2, connectorSize / 2);
|
||||
|
||||
drawingContext.DrawGeometry(brush, new Pen(Brushes.Black, 1), ellipse);
|
||||
drawingContext.DrawGeometry(brush, MyUIFunc.CreateAndFreezePen(), ellipse);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private bool isMouseOver; // 鼠标悬停状态
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace Serein.Workbench.Node.View
|
||||
|
||||
// 绘制连接器的圆形部分
|
||||
var ellipse = new EllipseGeometry(circlePoint, connectorSize / 2, connectorSize / 2);
|
||||
drawingContext.DrawGeometry(background, new Pen(Brushes.Black, 1), ellipse);
|
||||
drawingContext.DrawGeometry(background, MyUIFunc.CreateAndFreezePen(), ellipse);
|
||||
|
||||
// 定义三角形的间距
|
||||
double triangleOffsetX = 4; // 三角形与圆形的间距
|
||||
@@ -66,7 +66,7 @@ namespace Serein.Workbench.Node.View
|
||||
context.LineTo(new Point(triangleCenterX, triangleCenterY + 4.5), true, false);
|
||||
context.LineTo(new Point(triangleCenterX, triangleCenterY - 4.5), true, false);
|
||||
}
|
||||
drawingContext.DrawGeometry(background, new Pen(Brushes.Black, 1), pathGeometry);
|
||||
drawingContext.DrawGeometry(background, MyUIFunc.CreateAndFreezePen(), pathGeometry);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace Serein.Workbench.Node.View
|
||||
var ellipse = new EllipseGeometry(circlePoint, connectorSize / 2, connectorSize / 2);
|
||||
|
||||
|
||||
drawingContext.DrawGeometry(background, new Pen(Brushes.Black, 1), ellipse);
|
||||
drawingContext.DrawGeometry(background, MyUIFunc.CreateAndFreezePen(), ellipse);
|
||||
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace Serein.Workbench.Node.View
|
||||
context.LineTo(new Point(triangleCenterX, triangleCenterY + 4.5), true, false);
|
||||
context.LineTo(new Point(triangleCenterX, triangleCenterY - 4.5), true, false);
|
||||
}
|
||||
drawingContext.DrawGeometry(background, new Pen(Brushes.Black, 1), pathGeometry);
|
||||
drawingContext.DrawGeometry(background, MyUIFunc.CreateAndFreezePen(), pathGeometry);
|
||||
|
||||
// 绘制标签
|
||||
//var formattedText = new FormattedText(
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace Serein.Workbench.Node.View
|
||||
var circlePoint = new Point(circleCenterX, circleCenterY);
|
||||
// 绘制连接器的圆形部分
|
||||
var ellipse = new EllipseGeometry(circlePoint, connectorSize / 2, connectorSize / 2);
|
||||
drawingContext.DrawGeometry(background, new Pen(Brushes.Black, 1), ellipse);
|
||||
drawingContext.DrawGeometry(background, MyUIFunc.CreateAndFreezePen(), ellipse);
|
||||
|
||||
// 绘制连接器的圆形部分
|
||||
//var ellipse = new EllipseGeometry(circlePoint, connectorSize / 2, connectorSize / 2);
|
||||
@@ -54,7 +54,7 @@ namespace Serein.Workbench.Node.View
|
||||
context.LineTo(new Point(triangleCenterX, triangleCenterY + 4.5), true, false);
|
||||
context.LineTo(new Point(triangleCenterX, triangleCenterY - 4.5), true, false);
|
||||
}
|
||||
drawingContext.DrawGeometry(background, new Pen(Brushes.Black, 1), pathGeometry);
|
||||
drawingContext.DrawGeometry(background, MyUIFunc.CreateAndFreezePen(), pathGeometry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace Serein.Workbench.Node.View
|
||||
|
||||
// 绘制连接器的圆形部分
|
||||
var ellipse = new EllipseGeometry(circlePoint, connectorSize / 2, connectorSize / 2);
|
||||
drawingContext.DrawGeometry(background, new Pen(Brushes.Black, 1), ellipse);
|
||||
drawingContext.DrawGeometry(background, MyUIFunc.CreateAndFreezePen(), ellipse);
|
||||
|
||||
// 定义三角形的间距
|
||||
double triangleOffsetX = 4; // 三角形与圆形的间距
|
||||
@@ -55,7 +55,7 @@ namespace Serein.Workbench.Node.View
|
||||
context.LineTo(new Point(triangleCenterX, triangleCenterY + 4.5), true, false);
|
||||
context.LineTo(new Point(triangleCenterX, triangleCenterY - 4.5), true, false);
|
||||
}
|
||||
drawingContext.DrawGeometry(background, new Pen(Brushes.Black, 1), pathGeometry);
|
||||
drawingContext.DrawGeometry(background, MyUIFunc.CreateAndFreezePen(), pathGeometry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ namespace Serein.Workbench.Node.View
|
||||
|
||||
public NodeControlViewModelBase ViewModel { get; set; }
|
||||
|
||||
|
||||
protected NodeControlBase()
|
||||
{
|
||||
this.Background = Brushes.Transparent;
|
||||
|
||||
@@ -103,9 +103,6 @@ namespace Serein.Workbench.Node.View
|
||||
/// </summary>
|
||||
public class ConnectionControl
|
||||
{
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 所在的画布
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user