mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-18 15:36:36 +08:00
箭头分离到独立的model中,方便自定义path
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user