画线优化基本完成

This commit is contained in:
艾竹
2023-01-14 21:52:05 +08:00
parent 6a4c31106a
commit 717cc43827
23 changed files with 283 additions and 471 deletions

View File

@@ -25,7 +25,7 @@ namespace AIStudio.Wpf.Flowchart
{
FlowchartService.InitData(DiagramViewModel.Items.OfType<FlowNode>().ToList(), DiagramViewModel.Items.OfType<ConnectorViewModel>().ToList(), DiagramViewModel);
}
_service.DrawModeViewModel.LineDrawMode = DrawMode.BoundaryConnectingLine;
_service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth;
}
protected override void InitDiagramViewModel()
@@ -36,7 +36,7 @@ namespace AIStudio.Wpf.Flowchart
DiagramViewModel.GridCellSize = new Size(100, 100);
DiagramViewModel.CellHorizontalAlignment = CellHorizontalAlignment.Center;
DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.Center;
_service.DrawModeViewModel.LineDrawMode = DrawMode.BoundaryConnectingLine;
_service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth;
}
protected override void Init()

View File

@@ -17,7 +17,7 @@ namespace AIStudio.Wpf.Logical
}
public LogicalViewModel(string filename, DiagramDocument diagramDocument) : base(filename, diagramDocument)
{
_service.DrawModeViewModel.LineDrawMode = DrawMode.CornerConnectingLine;
_service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth;
}
protected override void InitDiagramViewModel()
@@ -31,7 +31,7 @@ namespace AIStudio.Wpf.Logical
DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.None;
DiagramViewModel.Items.CollectionChanged += Items_CollectionChanged;
_service.DrawModeViewModel.LineDrawMode = DrawMode.CornerConnectingLine;
_service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth;
}
protected override void Init()

View File

@@ -32,7 +32,7 @@ namespace AIStudio.Wpf.Flowchart
readDataTimer.Interval = 1000;
readDataTimer.AutoReset = false;
readDataTimer.Start();
_service.DrawModeViewModel.LineDrawMode = DrawMode.BoundaryConnectingLine;
_service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineBoundary;
}
protected override void InitDiagramViewModel()
@@ -43,7 +43,7 @@ namespace AIStudio.Wpf.Flowchart
DiagramViewModel.GridCellSize = new Size(100, 60);
DiagramViewModel.CellHorizontalAlignment = CellHorizontalAlignment.Center;
DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.Center;
_service.DrawModeViewModel.LineDrawMode = DrawMode.BoundaryConnectingLine;
_service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineBoundary;
}
private System.Timers.Timer readDataTimer = new System.Timers.Timer();

View File

@@ -802,10 +802,10 @@
</Fluent:ToggleButton>
<Fluent:SplitButton Header="连接线" GroupName="DrawMode" IsCheckable="True" IsChecked="{Binding LineDrawModeSelected}" Icon="{iconPacks:Material Kind=VectorPolyline}" Width="50" VerticalAlignment="Top">
<Fluent:MenuItem Header="曲线连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding LineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='SmoothConnectingLine'}, ConverterParameter='SmoothConnectingLine'}" Icon="{iconPacks:Material Kind=VectorRadius}"/>
<Fluent:MenuItem Header="直线连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding LineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='StraightConnectingLine'}, ConverterParameter='StraightConnectingLine'}" Icon="{iconPacks:Material Kind=VectorLine}"/>
<Fluent:MenuItem Header="折线连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding LineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='CornerConnectingLine'}, ConverterParameter='CornerConnectingLine'}" Icon="{iconPacks:Material Kind=VectorPolyline}"/>
<Fluent:MenuItem Header="边界连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding LineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='BoundaryConnectingLine'}, ConverterParameter='BoundaryConnectingLine'}" Icon="{iconPacks:Material Kind=VectorPolylineEdit}"/>
<Fluent:MenuItem Header="曲线连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding LineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='ConnectingLineSmooth'}, ConverterParameter='ConnectingLineSmooth'}" Icon="{iconPacks:Material Kind=VectorRadius}"/>
<Fluent:MenuItem Header="直线连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding LineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='ConnectingLineStraight'}, ConverterParameter='ConnectingLineStraight'}" Icon="{iconPacks:Material Kind=VectorLine}"/>
<Fluent:MenuItem Header="折线连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding LineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='ConnectingLineCorner'}, ConverterParameter='ConnectingLineCorner'}" Icon="{iconPacks:Material Kind=VectorPolyline}"/>
<Fluent:MenuItem Header="边界连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding LineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='ConnectingLineBoundary'}, ConverterParameter='ConnectingLineBoundary'}" Icon="{iconPacks:Material Kind=VectorPolylineEdit}"/>
<Fluent:SplitButton.Style>
<Style TargetType="{x:Type Fluent:SplitButton}" BasedOn="{StaticResource RibbonSplitButtonStyle}">
<Setter Property="LargeIcon">
@@ -814,28 +814,28 @@
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding LineDrawMode}" Value="SmoothConnectingLine">
<DataTrigger Binding="{Binding LineDrawMode}" Value="ConnectingLineSmooth">
<Setter Property="LargeIcon">
<Setter.Value>
<iconPacks:PackIconMaterial Kind="VectorRadius" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding LineDrawMode}" Value="StraightConnectingLine">
<DataTrigger Binding="{Binding LineDrawMode}" Value="ConnectingLineStraight">
<Setter Property="LargeIcon">
<Setter.Value>
<iconPacks:PackIconMaterial Kind="VectorLine" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding LineDrawMode}" Value="CornerConnectingLine">
<DataTrigger Binding="{Binding LineDrawMode}" Value="ConnectingLineCorner">
<Setter Property="LargeIcon">
<Setter.Value>
<iconPacks:PackIconMaterial Kind="VectorPolyline" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding LineDrawMode}" Value="BoundaryConnectingLine">
<DataTrigger Binding="{Binding LineDrawMode}" Value="ConnectingLineBoundary">
<Setter Property="LargeIcon">
<Setter.Value>
<iconPacks:PackIconMaterial Kind="VectorPolylineEdit" VerticalAlignment="Center" HorizontalAlignment="Center"/>
@@ -852,9 +852,9 @@
</Fluent:SplitButton.ToolTip>
</Fluent:SplitButton>
<Fluent:SplitButton Header="连接方式" GroupName="RouterMode" IsCheckable="False" IsChecked="{Binding LineRouterModeSelected}" Icon="{iconPacks:FontAwesome Kind=WindowMinimizeRegular}" Width="50" VerticalAlignment="Top">
<Fluent:MenuItem Header="普通" Size="Middle" IsCheckable="True" IsChecked="{Binding LineRouterMode,Converter={dd:ConverterValueMapToBool Parameter='Normal'}, ConverterParameter='Normal'}" Icon="{iconPacks:FontAwesome Kind=WindowMinimizeRegular}"/>
<Fluent:MenuItem Header="正交" Size="Middle" IsCheckable="True" IsChecked="{Binding LineRouterMode,Converter={dd:ConverterValueMapToBool Parameter='Orthogonal'}, ConverterParameter='Orthogonal'}" Icon="{iconPacks:FontAwesome Kind=BorderStyleSolid}"/>
<!--<Fluent:SplitButton Header="连接方式" GroupName="RouterMode" IsCheckable="False" IsChecked="{Binding LineRouterModeSelected}" Icon="{iconPacks:FontAwesome Kind=WindowMinimizeRegular}" Width="50" VerticalAlignment="Top">
<Fluent:MenuItem Header="普通" Size="Middle" IsCheckable="True" IsChecked="{Binding LineRouterMode,Converter={dd:ConverterValueMapToBool Parameter='RouterNormal'}, ConverterParameter='RouterNormal'}" Icon="{iconPacks:FontAwesome Kind=WindowMinimizeRegular}"/>
<Fluent:MenuItem Header="正交" Size="Middle" IsCheckable="True" IsChecked="{Binding LineRouterMode,Converter={dd:ConverterValueMapToBool Parameter='RouterOrthogonal'}, ConverterParameter='RouterOrthogonal'}" Icon="{iconPacks:FontAwesome Kind=BorderStyleSolid}"/>
<Fluent:SplitButton.Style>
<Style TargetType="{x:Type Fluent:SplitButton}" BasedOn="{StaticResource RibbonSplitButtonStyle}">
<Setter Property="LargeIcon">
@@ -863,14 +863,14 @@
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding LineRouterMode}" Value="Normal">
<DataTrigger Binding="{Binding LineRouterMode}" Value="RouterNormal">
<Setter Property="LargeIcon">
<Setter.Value>
<iconPacks:PackIconFontAwesome Kind="WindowMinimizeRegular" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding LineRouterMode}" Value="Orthogonal">
<DataTrigger Binding="{Binding LineRouterMode}" Value="RouterOrthogonal">
<Setter Property="LargeIcon">
<Setter.Value>
<iconPacks:PackIconFontAwesome Kind="BorderStyleSolid" VerticalAlignment="Center" HorizontalAlignment="Center"/>
@@ -885,7 +885,7 @@
Text="连接线的连接方式"
Width="190" />
</Fluent:SplitButton.ToolTip>
</Fluent:SplitButton>
</Fluent:SplitButton>-->
<Fluent:SplitButton Header="形状" GroupName="DrawMode" IsCheckable="True" IsChecked="{Binding ShapeDrawModeSelected}" Width="50" VerticalAlignment="Top">
<Fluent:MenuItem Header="矩形工具" Size="Middle" IsCheckable="True" IsChecked="{Binding ShapeDrawMode,Converter={dd:ConverterValueMapToBool Parameter='Rectangle'}, ConverterParameter='Rectangle'}" Icon="{iconPacks:Material Kind=RectangleOutline}" />