mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-25 19:06:35 +08:00
画板基础基本完成
This commit is contained in:
@@ -50,7 +50,6 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private DrawingDesignerItemViewModelBase _drawingDesignerItem;
|
||||
public DrawingRubberbandAdorner(DesignerCanvas designerCanvas, Point dragStartPoint)
|
||||
: base(designerCanvas)
|
||||
@@ -72,7 +71,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
_rubberbandBrush = null;
|
||||
_rubberbandPen = new Pen(new SolidColorBrush(Colors.Red) { Opacity = 0.5 }, _drawingDesignerItem.ColorViewModel.LineWidth);
|
||||
}
|
||||
else if (DrawMode >= DrawMode.ErasableLine && DrawMode <= DrawMode.ErasableDirectLine)
|
||||
else if (DrawMode >= DrawMode.ColorPicker && DrawMode <= DrawMode.ErasableDirectLine)
|
||||
{
|
||||
if (DrawMode == DrawMode.ErasableLine)
|
||||
{
|
||||
@@ -98,9 +97,17 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
_drawingDesignerItem = new DirectLineDrawingDesignerItemViewModel(_viewModel, dragStartPoint, true);
|
||||
}
|
||||
else if (DrawMode == DrawMode.ErasableText)
|
||||
{
|
||||
_drawingDesignerItem = new TextDrawingDesignerItemViewModel(_viewModel, dragStartPoint, true);
|
||||
}
|
||||
else if (DrawMode == DrawMode.ColorPicker)
|
||||
{
|
||||
_drawingDesignerItem = new ColorPickerDrawingDesignerItemViewModel(_viewModel, dragStartPoint, true);
|
||||
}
|
||||
|
||||
_rubberbandBrush = null;//ColorObject.ToBrush(_drawingDesignerItem.ColorViewModel.FillColor);
|
||||
_rubberbandPen = new Pen(ColorObject.ToBrush(_drawingDesignerItem.ColorViewModel.LineColor), _drawingDesignerItem.ColorViewModel.LineWidth);
|
||||
_rubberbandPen = new Pen(_drawingDesignerItem.ColorViewModel.LineColor.ToBrush(), _drawingDesignerItem.ColorViewModel.LineWidth);
|
||||
_rubberbandPen.DashStyle = new DashStyle(StrokeDashArray.Dash[(int)_drawingDesignerItem.ColorViewModel.LineDashStyle], 1);
|
||||
}
|
||||
else if (DrawMode >= DrawMode.Line && DrawMode <= DrawMode.DirectLine)
|
||||
@@ -130,15 +137,20 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
_drawingDesignerItem = new DirectLineDrawingDesignerItemViewModel(_viewModel, dragStartPoint, false);
|
||||
}
|
||||
|
||||
_rubberbandBrush = ColorObject.ToBrush(_drawingDesignerItem.ColorViewModel.FillColor);
|
||||
_rubberbandPen = new Pen(ColorObject.ToBrush(_drawingDesignerItem.ColorViewModel.LineColor), _drawingDesignerItem.ColorViewModel.LineWidth);
|
||||
_rubberbandBrush = _drawingDesignerItem.ColorViewModel.FillColor.ToBrush();
|
||||
_rubberbandPen = new Pen(_drawingDesignerItem.ColorViewModel.LineColor.ToBrush(), _drawingDesignerItem.ColorViewModel.LineWidth);
|
||||
_rubberbandPen.DashStyle = new DashStyle(StrokeDashArray.Dash[(int)_drawingDesignerItem.ColorViewModel.LineDashStyle], 1);
|
||||
}
|
||||
|
||||
if (_drawingDesignerItem == null)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnMouseMove(System.Windows.Input.MouseEventArgs e)
|
||||
{
|
||||
if (_drawingDesignerItem.OnMouseMove(this, e) == true)
|
||||
if (_drawingDesignerItem?.OnMouseMove(this, e) == true)
|
||||
{
|
||||
if (!this.IsMouseCaptured)
|
||||
this.CaptureMouse();
|
||||
@@ -155,7 +167,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
protected override void OnMouseUp(System.Windows.Input.MouseButtonEventArgs e)
|
||||
{
|
||||
if (_drawingDesignerItem.OnMouseUp(this, e) == false)
|
||||
if (_drawingDesignerItem?.OnMouseUp(this, e) == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -168,17 +180,18 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
if (adornerLayer != null)
|
||||
adornerLayer.Remove(this);
|
||||
|
||||
if (_drawingDesignerItem.IsFinish == true)
|
||||
if (_drawingDesignerItem?.IsFinish == true)
|
||||
{
|
||||
_viewModel.AddItemCommand.Execute(_drawingDesignerItem);
|
||||
}
|
||||
|
||||
this._service.DrawModeViewModel.ResetDrawMode();
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
protected override void OnMouseDown(MouseButtonEventArgs e)
|
||||
{
|
||||
_drawingDesignerItem.OnMouseDown(this, e);
|
||||
_drawingDesignerItem?.OnMouseDown(this, e);
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
@@ -192,7 +205,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
// the ConnectionAdorner does.
|
||||
dc.DrawRectangle(Brushes.Transparent, null, new Rect(RenderSize));
|
||||
|
||||
dc.DrawGeometry(_rubberbandBrush, _rubberbandPen, _drawingDesignerItem.Geometry);
|
||||
dc.DrawGeometry(_rubberbandBrush, _rubberbandPen, _drawingDesignerItem?.Geometry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
Rect rubberBand = new Rect(startPoint.Value, endPoint.Value);
|
||||
ItemsControl itemsControl = GetParent<ItemsControl>(typeof(ItemsControl), _designerCanvas);
|
||||
|
||||
foreach (SelectableDesignerItemViewModelBase item in vm.Items)
|
||||
foreach (SelectableDesignerItemViewModelBase item in vm.Items.ToList())
|
||||
{
|
||||
if (item is SelectableDesignerItemViewModelBase)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user