箭头分离到独立的model中,方便自定义path

This commit is contained in:
艾竹
2023-01-26 18:27:17 +08:00
parent f11a4170d8
commit 9bb6c6d321
42 changed files with 993 additions and 299 deletions

View File

@@ -3,22 +3,6 @@ using System.ComponentModel;
namespace AIStudio.Wpf.DiagramDesigner
{
/// <summary>
/// Simple service interface
/// </summary>
public interface IDiagramServiceProvider : INotifyPropertyChanged
{
IColorViewModel ColorViewModel { get; }
IFontViewModel FontViewModel { get; }
IDrawModeViewModel DrawModeViewModel { get; }
IQuickThemeViewModel QuickThemeViewModel { get; }
ILockObjectViewModel LockObjectViewModel { get; }
SelectableDesignerItemViewModelBase SelectedItem { get; set; }
IColorViewModel CopyDefaultColorViewModel();
IFontViewModel CopyDefaultFontViewModel();
}
/// <summary>
/// Simple service locator
/// </summary>
@@ -28,7 +12,9 @@ namespace AIStudio.Wpf.DiagramDesigner
{
ColorViewModel = new ColorViewModel();
FontViewModel = new FontViewModel();
ShapeViewModel = new ShapeViewModel();
LockObjectViewModel = new LockObjectViewModel();
_drawModeViewModel = new DrawModeViewModel();
_quickThemeViewModel = new QuickThemeViewModel();
@@ -37,6 +23,7 @@ namespace AIStudio.Wpf.DiagramDesigner
SetOldValue<IColorViewModel>(ColorViewModel, nameof(ColorViewModel));
SetOldValue<IFontViewModel>(FontViewModel, nameof(FontViewModel));
SetOldValue<IShapeViewModel>(ShapeViewModel, nameof(ShapeViewModel));
SetOldValue<ILockObjectViewModel>(LockObjectViewModel, nameof(LockObjectViewModel));
}
@@ -57,6 +44,12 @@ namespace AIStudio.Wpf.DiagramDesigner
return CopyHelper.Mapper<FontViewModel, IFontViewModel>(viewModel);
}
public IShapeViewModel CopyDefaultShapeViewModel()
{
var viewModel = GetOldValue<ShapeViewModel>(nameof(ShapeViewModel));
return CopyHelper.Mapper(viewModel);
}
private IColorViewModel _colorViewModel;
public IColorViewModel ColorViewModel
{
@@ -76,7 +69,7 @@ namespace AIStudio.Wpf.DiagramDesigner
_colorViewModel.PropertyChanged += ViewModel_PropertyChanged;
}
}
}
}
private IFontViewModel _fontViewModel;
public IFontViewModel FontViewModel
@@ -99,6 +92,27 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
private IShapeViewModel _linkMarkerViewModel;
public IShapeViewModel ShapeViewModel
{
get
{
return _linkMarkerViewModel;
}
set
{
if (_linkMarkerViewModel != null)
{
_linkMarkerViewModel.PropertyChanged -= ViewModel_PropertyChanged;
}
SetProperty(ref _linkMarkerViewModel, value);
if (_linkMarkerViewModel != null)
{
_linkMarkerViewModel.PropertyChanged += ViewModel_PropertyChanged;
}
}
}
private DrawModeViewModel _drawModeViewModel;
public IDrawModeViewModel DrawModeViewModel
{
@@ -151,12 +165,14 @@ namespace AIStudio.Wpf.DiagramDesigner
{
ColorViewModel = GetOldValue<ColorViewModel>(nameof(ColorViewModel));
FontViewModel = GetOldValue<FontViewModel>(nameof(FontViewModel));
ShapeViewModel = GetOldValue<ShapeViewModel>(nameof(ShapeViewModel));
LockObjectViewModel = GetOldValue<LockObjectViewModel>(nameof(LockObjectViewModel));
}
else
{
ColorViewModel = _selectedItem.ColorViewModel;
FontViewModel = _selectedItem.FontViewModel;
ShapeViewModel = _selectedItem.ShapeViewModel;
LockObjectViewModel = _selectedItem.LockObjectViewModel;
}
}
@@ -168,8 +184,6 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
/// <summary>
/// Simple service locator helper
/// </summary>