把底层再分割一下

This commit is contained in:
艾竹
2023-01-24 09:02:40 +08:00
parent 2b4662ed37
commit f39a57b3e5
26 changed files with 283 additions and 325 deletions

View File

@@ -16,7 +16,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
/// BindingWidthAndHeight Dependency Property
/// </summary>
public static readonly DependencyProperty ResizeModeProperty =
DependencyProperty.Register("ResizeMode", typeof(ResizeMode), typeof(BorderResizeThumb),
DependencyProperty.Register(nameof(ResizeMode), typeof(ResizeMode), typeof(BorderResizeThumb),
new FrameworkPropertyMetadata(ResizeMode.Size));
/// <summary>
@@ -37,7 +37,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
/// BindingWidthAndHeight Dependency Property
/// </summary>
public static readonly DependencyProperty ResizeElementProperty =
DependencyProperty.Register("ResizeElement", typeof(FrameworkElement), typeof(BorderResizeThumb),
DependencyProperty.Register(nameof(ResizeElement), typeof(FrameworkElement), typeof(BorderResizeThumb),
new FrameworkPropertyMetadata(null));
/// <summary>

View File

@@ -57,7 +57,7 @@ namespace AIStudio.Wpf.DiagramDesigner
#region GridCellSize
public static readonly DependencyProperty GridCellSizeProperty =
DependencyProperty.Register("GridCellSize",
DependencyProperty.Register(nameof(GridCellSize),
typeof(Size),
typeof(DesignerCanvas),
new FrameworkPropertyMetadata(new Size(50, 50), FrameworkPropertyMetadataOptions.AffectsRender));
@@ -73,7 +73,7 @@ namespace AIStudio.Wpf.DiagramDesigner
#region ShowGrid
public static readonly DependencyProperty ShowGridProperty =
DependencyProperty.Register("ShowGrid",
DependencyProperty.Register(nameof(ShowGrid),
typeof(bool),
typeof(DesignerCanvas),
new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
@@ -89,7 +89,7 @@ namespace AIStudio.Wpf.DiagramDesigner
#region GridColor
public static readonly DependencyProperty GridColorProperty =
DependencyProperty.Register("GridColor",
DependencyProperty.Register(nameof(GridColor),
typeof(Color),
typeof(DesignerCanvas),
new FrameworkPropertyMetadata(Colors.LightGray, FrameworkPropertyMetadataOptions.AffectsRender));
@@ -105,7 +105,7 @@ namespace AIStudio.Wpf.DiagramDesigner
#region GridMargin mm
public static readonly DependencyProperty GridMarginProperty =
DependencyProperty.Register("GridMargin",
DependencyProperty.Register(nameof(GridMargin),
typeof(double),
typeof(DesignerCanvas),
new FrameworkPropertyMetadata(28d, FrameworkPropertyMetadataOptions.AffectsRender));
@@ -169,7 +169,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{
StreamResourceInfo sri = Application.GetResourceStream(new Uri("pack://application:,,,/AIStudio.Wpf.DiagramDesigner;component/Images/FormatPainter.cur", UriKind.RelativeOrAbsolute));
this.Cursor = new Cursor(sri.Stream);
foreach (SelectableViewModelBase item in _viewModel.Items)
foreach (SelectableDesignerItemViewModelBase item in _viewModel.Items)
{
item.IsHitTestVisible = false;
}
@@ -178,7 +178,7 @@ namespace AIStudio.Wpf.DiagramDesigner
private void EnterMove()
{
this.Cursor = Cursors.SizeAll;
foreach (SelectableViewModelBase item in _viewModel.Items)
foreach (SelectableDesignerItemViewModelBase item in _viewModel.Items)
{
item.IsHitTestVisible = false;
}
@@ -187,7 +187,7 @@ namespace AIStudio.Wpf.DiagramDesigner
private void ExitCursor()
{
this.Cursor = Cursors.Arrow;
foreach (SelectableViewModelBase item in _viewModel.Items)
foreach (SelectableDesignerItemViewModelBase item in _viewModel.Items)
{
item.IsHitTestVisible = true;
}
@@ -195,7 +195,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
#endregion
private void Format(SelectableViewModelBase source, SelectableViewModelBase target)
private void Format(SelectableDesignerItemViewModelBase source, SelectableDesignerItemViewModelBase target)
{
CopyHelper.CopyPropertyValue(source.ColorViewModel, target.ColorViewModel);
CopyHelper.CopyPropertyValue(source.FontViewModel, target.FontViewModel);
@@ -253,7 +253,7 @@ namespace AIStudio.Wpf.DiagramDesigner
if (_service.DrawModeViewModel.CursorMode == CursorMode.Format)
{
var element = (e.OriginalSource as FrameworkElement);
if (element.DataContext is SelectableViewModelBase target)
if (element.DataContext is SelectableDesignerItemViewModelBase target)
{
Format(_viewModel.SelectedItems.FirstOrDefault(), target);
return;

View File

@@ -18,16 +18,16 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
base.DragCompleted += DragThumb_DragCompleted;
}
private List<SelectableViewModelBase> designerItems;
private List<SelectableDesignerItemViewModelBase> designerItems;
private void DragThumb_DragStarted(object sender, DragStartedEventArgs e)
{
SelectableViewModelBase designerItem = this.DataContext as SelectableViewModelBase;
SelectableDesignerItemViewModelBase designerItem = this.DataContext as SelectableDesignerItemViewModelBase;
if (designerItem != null && designerItem.IsSelected)
{
// we only move DesignerItems
designerItems = designerItem.SelectedItems.ToList();
designerItems = designerItem.Parent.SelectedItems.ToList();
if (designerItem is ConnectorViewModel connector)
{
designerItems.Add(connector.SourceConnectorInfo.DataItem);
@@ -35,15 +35,11 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
{
designerItems.Add(connector.SinkConnectorInfoFully.DataItem);
}
if (designerItem.OutTextItem != null)
{
designerItems.Remove(designerItem.OutTextItem);//这个自动计算位置
}
}
if (designerItem is PointDesignerItemViewModel)
{
designerItems = new List<SelectableViewModelBase> { designerItem };
designerItems = new List<SelectableDesignerItemViewModelBase> { designerItem };
}
foreach (DesignerItemViewModelBase item in designerItems.OfType<DesignerItemViewModelBase>())

View File

@@ -23,7 +23,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
{
#region SelectedObject
public static readonly DependencyProperty SelectedObjectProperty = DependencyProperty.Register("SelectedObject", typeof(object), typeof(PropertiesView), new UIPropertyMetadata(null, OnSelectedObjectChanged));
public static readonly DependencyProperty SelectedObjectProperty = DependencyProperty.Register(nameof(SelectedObject), typeof(object), typeof(PropertiesView), new UIPropertyMetadata(null, OnSelectedObjectChanged));
public object SelectedObject
{
get
@@ -57,7 +57,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
#endregion //SelectedObject
public static readonly DependencyProperty NeedBrowsableProperty = DependencyProperty.Register("NeedBrowsable", typeof(bool), typeof(PropertiesView), new UIPropertyMetadata(true));
public static readonly DependencyProperty NeedBrowsableProperty = DependencyProperty.Register(nameof(NeedBrowsable), typeof(bool), typeof(PropertiesView), new UIPropertyMetadata(true));
public bool NeedBrowsable
{
get

View File

@@ -17,7 +17,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
base.DragCompleted += ResizeThumb_DragCompleted;
}
private List<SelectableViewModelBase> designerItems;
private List<SelectableDesignerItemViewModelBase> designerItems;
IDiagramViewModel diagarmViewModel;
private void ResizeThumb_DragStarted(object sender, DragStartedEventArgs e)
@@ -26,7 +26,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
diagarmViewModel = designerItem.Parent;
if (designerItem != null && designerItem.IsSelected)
{
designerItems = designerItem.SelectedItems.ToList();
designerItems = designerItem.Parent.SelectedItems.ToList();
foreach (DesignerItemViewModelBase item in designerItems.OfType<DesignerItemViewModelBase>())
{
item.BeginDo = true;

View File

@@ -16,7 +16,6 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
private double initialAngle;
private Canvas designerCanvas;
private DesignerItemViewModelBase designerItem;
private RotateTransform rotateTransform;
public RotateThumb()
{
@@ -25,7 +24,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
DragCompleted += RotateThumb_DragCompleted;
}
private List<SelectableViewModelBase> designerItems;
private List<SelectableDesignerItemViewModelBase> designerItems;
private void RotateThumb_DragStarted(object sender, DragStartedEventArgs e)
{
@@ -33,7 +32,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
if (this.designerItem != null)
{
designerItems = designerItem.SelectedItems.ToList();
designerItems = designerItem.Parent.SelectedItems.ToList();
foreach (DesignerItemViewModelBase item in designerItems.OfType<DesignerItemViewModelBase>())
{

View File

@@ -24,14 +24,14 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public static readonly DependencyProperty ScrollViewerProperty =
DependencyProperty.Register("ScrollViewer", typeof(ScrollViewer), typeof(ZoomBox));
DependencyProperty.Register(nameof(ScrollViewer), typeof(ScrollViewer), typeof(ZoomBox));
#endregion
#region DesignerCanvas
public static readonly DependencyProperty DesignerCanvasProperty =
DependencyProperty.Register("DesignerCanvas", typeof(DesignerCanvas), typeof(ZoomBox),
DependencyProperty.Register(nameof(DesignerCanvas), typeof(DesignerCanvas), typeof(ZoomBox),
new FrameworkPropertyMetadata(null,
new PropertyChangedCallback(OnDesignerCanvasChanged)));