mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-21 17:06:35 +08:00
选中状态代码整理
This commit is contained in:
@@ -523,7 +523,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
case nameof(IsSelected):
|
||||
if (IsSelected == false)
|
||||
{
|
||||
Labels.FirstOrDefault()?.AddToSelection(false);
|
||||
Labels.FirstOrDefault()?.AddToSelection(false, true);
|
||||
}
|
||||
break;
|
||||
case nameof(RouterMode):
|
||||
|
||||
@@ -169,15 +169,20 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
Offset += new VectorBase(0, newvalue - oldvalue);
|
||||
}
|
||||
|
||||
public override void AddToSelection(bool selected)
|
||||
public override void AddToSelection(bool selected, bool clearother)
|
||||
{
|
||||
foreach (var item in Connector.Labels.ToList())
|
||||
item.IsSelected = false;
|
||||
|
||||
if (selected == true)
|
||||
if (clearother)
|
||||
{
|
||||
IsSelected = true;
|
||||
foreach (var item in Connector.Labels.ToList())
|
||||
{
|
||||
if (item != this)
|
||||
{
|
||||
item.IsSelected = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IsSelected = selected;
|
||||
}
|
||||
|
||||
protected override void ClearText()
|
||||
|
||||
@@ -1181,7 +1181,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
foreach (var item in this.SelectedItems.ToList())
|
||||
{
|
||||
item.IsSelected = false;
|
||||
item.RemoveFromSelection();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2498,7 +2498,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
item.ParentId = groupItem.Id;
|
||||
groupItem.Resize();
|
||||
ClearSelectedItems();
|
||||
SelectionService.AddToSelection(groupItem);
|
||||
groupItem.AddToSelection(true, true);
|
||||
},
|
||||
() => {
|
||||
Remove(groupItem);
|
||||
|
||||
@@ -153,23 +153,34 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
foreach (var designerItemViewModelBase in Root.SelectedItems.ToList())
|
||||
{
|
||||
designerItemViewModelBase.ClearSelected();
|
||||
designerItemViewModelBase.RemoveFromSelection();
|
||||
}
|
||||
}
|
||||
|
||||
IsSelected = select;
|
||||
}
|
||||
|
||||
public override void AddToSelection(bool selected)
|
||||
public override void AddToSelection(bool selected, bool clearother)
|
||||
{
|
||||
foreach (SelectableDesignerItemViewModelBase item in Root.SelectedItems.ToList())
|
||||
item.IsSelected = false;
|
||||
if (clearother == true)
|
||||
{
|
||||
foreach (SelectableDesignerItemViewModelBase item in Root.SelectedItems.ToList())
|
||||
{
|
||||
if (item != this)
|
||||
{
|
||||
item.RemoveFromSelection();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Root.SelectedItems.Clear();
|
||||
if (selected == true)
|
||||
{
|
||||
Root.SelectionService.AddToSelection(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
Root.SelectionService.RemoveFromSelection(this);
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void ExecuteEditCommand(object param)
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
}
|
||||
|
||||
protected virtual void Init(IDiagramViewModel root, bool initNew)
|
||||
{
|
||||
{
|
||||
Root = root;
|
||||
|
||||
if (Root?.ColorViewModel != null)
|
||||
@@ -124,7 +124,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
protected virtual void InitNew()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected virtual void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
||||
@@ -144,7 +144,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
public bool IsLoaded
|
||||
{
|
||||
get;set;
|
||||
get; set;
|
||||
}
|
||||
|
||||
public bool IsInternalChanged
|
||||
@@ -185,10 +185,18 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
get; set;
|
||||
}
|
||||
|
||||
public bool DisableSelected
|
||||
private bool _disableSelected;
|
||||
public bool SelectedDisable
|
||||
{
|
||||
get;set;
|
||||
}
|
||||
get
|
||||
{
|
||||
return _disableSelected;
|
||||
}
|
||||
set
|
||||
{
|
||||
SetProperty(ref _disableSelected, value);
|
||||
}
|
||||
}
|
||||
|
||||
private bool _isSelected;
|
||||
[Browsable(false)]
|
||||
@@ -197,7 +205,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
get
|
||||
{
|
||||
if (DisableSelected == true)
|
||||
if (SelectedDisable == true)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -316,10 +324,6 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (DisableSelected == true)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return _isHitTestVisible;
|
||||
}
|
||||
@@ -424,7 +428,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
[Browsable(true)]
|
||||
public string Name
|
||||
{
|
||||
get;set;
|
||||
get; set;
|
||||
}
|
||||
|
||||
private string _text;
|
||||
@@ -462,12 +466,12 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
}
|
||||
|
||||
public virtual void ClearSelected()
|
||||
public virtual void RemoveFromSelection()
|
||||
{
|
||||
_isSelected = false;
|
||||
IsSelected = false;
|
||||
}
|
||||
|
||||
public virtual void AddToSelection(bool selected)
|
||||
public virtual void AddToSelection(bool selected, bool clearother)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -496,7 +500,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
protected void ColorViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
if (IsLoaded == false || IsInternalChanged == true ) { return; }
|
||||
if (IsLoaded == false || IsInternalChanged == true) { return; }
|
||||
|
||||
RaisePropertyChanged(sender, e);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
DrawMode = drawMode;
|
||||
Points = new List<Point> { startPoint };
|
||||
Erasable = erasable;
|
||||
DisableSelected = Erasable;
|
||||
if (Erasable)
|
||||
{
|
||||
if (Root?.DrawModeViewModel != null)
|
||||
@@ -75,7 +74,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
//this.Geometry.Transform = Transform.Parse(designer.Matrix.ToString());
|
||||
this.Points = designer.Points;
|
||||
this.DrawMode = designer.DrawMode;
|
||||
this.DisableSelected = Erasable;
|
||||
this.SelectedDisable = Erasable;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,8 +92,6 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
if (IsFinish)
|
||||
{
|
||||
UpdateLocation();
|
||||
|
||||
if (Geometry != null)
|
||||
{
|
||||
if (Geometry.Transform is TransformGroup transformGroup)
|
||||
@@ -104,14 +101,16 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
transformGroup.Children.Add(new TranslateTransform(0 - Geometry.Bounds.Left, 0 - Geometry.Bounds.Top));
|
||||
}
|
||||
else
|
||||
Geometry.Transform = new TranslateTransform(0 - Left, 0 - Top);
|
||||
Geometry.Transform = new TranslateTransform(0 - Geometry.Bounds.Left, 0 - Geometry.Bounds.Top);
|
||||
|
||||
if (Erasable)
|
||||
{
|
||||
var aPen = new Pen(ColorViewModel.LineColor.ToBrush(), ColorViewModel.LineWidth);
|
||||
aPen.DashStyle = new DashStyle(StrokeDashArray.Dash[(int)ColorViewModel.LineDashStyle], 1);
|
||||
Geometry = Geometry.GetWidenedPathGeometry(aPen); //可擦除,需要把Geometry转成几何图像,所以不能有填充色
|
||||
|
||||
}
|
||||
UpdateLocation();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -180,10 +179,38 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
public void UpdateLocation()
|
||||
{
|
||||
ItemWidth = Geometry.Bounds.Width + ColorViewModel.LineWidth * 2;
|
||||
ItemHeight = Geometry.Bounds.Height + ColorViewModel.LineWidth * 2;
|
||||
Left = Geometry.Bounds.Left;
|
||||
Top = Geometry.Bounds.Top;
|
||||
if (Erasable)
|
||||
{
|
||||
ItemWidth = Geometry.Bounds.Width - ColorViewModel.LineWidth * 0.5;
|
||||
ItemHeight = Geometry.Bounds.Height - ColorViewModel.LineWidth * 0.5;
|
||||
Left = Points[0].X;
|
||||
Top = Points[0].Y;
|
||||
}
|
||||
else
|
||||
{
|
||||
ItemWidth = Geometry.Bounds.Width;
|
||||
ItemHeight = Geometry.Bounds.Height;
|
||||
Left = Points[0].X;
|
||||
Top = Points[0].Y;
|
||||
}
|
||||
}
|
||||
|
||||
public override void RemoveFromSelection()
|
||||
{
|
||||
if (Erasable == true)
|
||||
{
|
||||
this.SelectedDisable = true;
|
||||
}
|
||||
base.RemoveFromSelection();
|
||||
}
|
||||
|
||||
public override void AddToSelection(bool selected, bool clearother)
|
||||
{
|
||||
if (selected == true && _service.DrawModeViewModel.DrawingDrawMode == DrawMode.Select)
|
||||
{
|
||||
this.SelectedDisable = false;
|
||||
}
|
||||
base.AddToSelection(selected, clearother);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
get; set;
|
||||
}
|
||||
|
||||
void AddToSelection(bool selected);
|
||||
void AddToSelection(bool selected, bool clearother);
|
||||
|
||||
event PropertyChangedEventHandler PropertyChanged;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
}
|
||||
}
|
||||
|
||||
internal void RemoveFromSelection(ISelectable item)
|
||||
public void RemoveFromSelection(ISelectable item)
|
||||
{
|
||||
if (item is IGroupable)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user