From 38cb0fae852deb60ba3a66fbb89ff39abb3aa659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Tue, 14 Feb 2023 21:55:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controls/ZoomBox.cs | 34 ++++++++++++++----- AIStudio.Wpf.Mind/ViewModels/MindNode.cs | 8 ++--- Directory.Build.Props | 2 +- 3 files changed, 30 insertions(+), 14 deletions(-) diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs b/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs index 6ef5cd9..a905ed2 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs @@ -13,14 +13,21 @@ namespace AIStudio.Wpf.DiagramDesigner private Thumb zoomThumb; private Canvas zoomCanvas; private Slider zoomSlider; + private DiagramControl diagramControl; #region DPs #region ScrollViewer public ScrollViewer ScrollViewer { - get { return (ScrollViewer)GetValue(ScrollViewerProperty); } - set { SetValue(ScrollViewerProperty, value); } + get + { + return (ScrollViewer)GetValue(ScrollViewerProperty); + } + set + { + SetValue(ScrollViewerProperty, value); + } } public static readonly DependencyProperty ScrollViewerProperty = @@ -38,8 +45,14 @@ namespace AIStudio.Wpf.DiagramDesigner public DesignerCanvas DesignerCanvas { - get { return (DesignerCanvas)GetValue(DesignerCanvasProperty); } - set { SetValue(DesignerCanvasProperty, value); } + get + { + return (DesignerCanvas)GetValue(DesignerCanvasProperty); + } + set + { + SetValue(DesignerCanvasProperty, value); + } } @@ -47,7 +60,7 @@ namespace AIStudio.Wpf.DiagramDesigner { ZoomBox target = (ZoomBox)d; DesignerCanvas oldDesignerCanvas = (DesignerCanvas)e.OldValue; - DesignerCanvas newDesignerCanvas = target.DesignerCanvas; + DesignerCanvas newDesignerCanvas = (DesignerCanvas)e.NewValue; target.OnDesignerCanvasChanged(oldDesignerCanvas, newDesignerCanvas); } @@ -69,7 +82,7 @@ namespace AIStudio.Wpf.DiagramDesigner #endregion - public static readonly DependencyProperty ZoomValueProperty = + public static readonly DependencyProperty ZoomValueProperty = DependencyProperty.Register(nameof(ZoomValue), typeof(double), typeof(ZoomBox), new UIPropertyMetadata(1d)); public double ZoomValue { @@ -94,6 +107,8 @@ namespace AIStudio.Wpf.DiagramDesigner DesignerCanvas = VisualHelper.FindChild(this.ScrollViewer); + diagramControl = VisualHelper.FindChild(this.ScrollViewer); + this.zoomThumb = Template.FindName("PART_ZoomThumb", this) as Thumb; if (this.zoomThumb == null) throw new Exception("PART_ZoomThumb template is missing!"); @@ -148,7 +163,7 @@ namespace AIStudio.Wpf.DiagramDesigner private void DesignerCanvas_MouseWheel(object sender, EventArgs e) { MouseWheelEventArgs wheel = (MouseWheelEventArgs)e; - + //divide the value by 10 so that it is more smooth double value = Math.Max(0, wheel.Delta / 10); value = Math.Min(wheel.Delta, 10); @@ -157,8 +172,9 @@ namespace AIStudio.Wpf.DiagramDesigner private void InvalidateScale(out double scale, out double xOffset, out double yOffset) { - double w = DesignerCanvas.ActualWidth * ZoomValue; - double h = DesignerCanvas.ActualHeight * ZoomValue; + Vector vector = System.Windows.Media.VisualTreeHelper.GetOffset(diagramControl); + double w = DesignerCanvas.ActualWidth * ZoomValue + vector.X * 2; + double h = DesignerCanvas.ActualHeight * ZoomValue + vector.Y * 2; // zoom canvas size double x = this.zoomCanvas.ActualWidth; diff --git a/AIStudio.Wpf.Mind/ViewModels/MindNode.cs b/AIStudio.Wpf.Mind/ViewModels/MindNode.cs index 21114a3..93667f8 100644 --- a/AIStudio.Wpf.Mind/ViewModels/MindNode.cs +++ b/AIStudio.Wpf.Mind/ViewModels/MindNode.cs @@ -98,10 +98,10 @@ namespace AIStudio.Wpf.Mind.ViewModels get; set; } - public RectangleBase GetChildRectangle() - { - //Children.Select(p => p.Size) - } + //public RectangleBase GetChildRectangle() + //{ + // //Children.Select(p => p.Size) + //} } public class MindLevel2Node : MindNode diff --git a/Directory.Build.Props b/Directory.Build.Props index 4d652c4..b3d0e9d 100644 --- a/Directory.Build.Props +++ b/Directory.Build.Props @@ -1,7 +1,7 @@ - netcoreapp3.1;net5.0-windows + net461;netcoreapp3.1;net5.0-windows