diff --git a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj b/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj index 99396ed..f92da9e 100644 --- a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj +++ b/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj @@ -109,6 +109,7 @@ + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs index 92ea1cb..bb4b657 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs @@ -377,6 +377,15 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels return this._aboutCommand ?? (this._aboutCommand = new DelegateCommand(() => this.AboutExecuted())); } } + + private ICommand _screenshotCommand; + public ICommand ScreenshotCommand + { + get + { + return this._screenshotCommand ?? (this._screenshotCommand = new DelegateCommand(() => this.ScreenshotExecuted())); + } + } #endregion public ItemActionCallback ClosingTabItemHandler @@ -676,6 +685,12 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels aboutWindow.ShowDialog(); } + private void ScreenshotExecuted() + { + AIStudio.Wpf.ComeCapture.MainWindow window = new AIStudio.Wpf.ComeCapture.MainWindow(); + window.Show(); + } + #region 方法 private Color[] GenerateStandardGradients() { diff --git a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml index 5bc69f8..225b18c 100644 --- a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml +++ b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml @@ -1465,47 +1465,7 @@ Width="190" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + @@ -2288,6 +2253,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs b/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs index 316f267..39aaeb6 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs @@ -188,7 +188,7 @@ namespace AIStudio.Wpf.DiagramDesigner (this.ScrollViewer.ViewportHeight * fitViewModel.PaddingRate) / fitViewModel.BoundingRect.Height ); } - + double xOffset, yOffset; xOffset = fitViewModel.BoundingRect.Left * ZoomValue - (this.ScrollViewer.ViewportWidth - fitViewModel.BoundingRect.Width * ZoomValue) / 2; yOffset = fitViewModel.BoundingRect.Top * ZoomValue - (this.ScrollViewer.ViewportHeight - fitViewModel.BoundingRect.Height * ZoomValue) / 2; @@ -240,6 +240,7 @@ namespace AIStudio.Wpf.DiagramDesigner } + private static object thisLock = new Object(); private void ZoomSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) { double scale = e.NewValue / e.OldValue; diff --git a/AIStudio.Wpf.DiagramDesigner/Styles/ZoomBox.xaml b/AIStudio.Wpf.DiagramDesigner/Styles/ZoomBox.xaml index 20ccf8d..ad7df7d 100644 --- a/AIStudio.Wpf.DiagramDesigner/Styles/ZoomBox.xaml +++ b/AIStudio.Wpf.DiagramDesigner/Styles/ZoomBox.xaml @@ -214,7 +214,7 @@ Maximum="{Binding MaximumZoomValue,RelativeSource={RelativeSource Mode=TemplatedParent},Mode=TwoWay}" SmallChange="0.25" LargeChange="0.25" - Value="{Binding ZoomValue,RelativeSource={RelativeSource Mode=TemplatedParent},Mode=TwoWay}" + Value="{Binding ZoomValue,RelativeSource={RelativeSource Mode=TemplatedParent},Mode=TwoWay,Delay=500}" IsSnapToTickEnabled="True" IsMoveToPointEnabled="False" /> diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs index 0018811..b5a2f27 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs @@ -424,7 +424,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private double _minimumZoomValue = 0.01; + private double _minimumZoomValue = 0.1; [Browsable(false)] public double MinimumZoomValue { @@ -2669,17 +2669,26 @@ namespace AIStudio.Wpf.DiagramDesigner #region 适应大小 private void ExecuteFitAutoCommand(object parameter) { - FitViewModel = new FitViewModel() { BoundingRect = DiagramViewModelHelper.GetBoundingRectangle(Items.OfType()), FitMode = FitMode.FitAuto }; + if (Items.Any()) + { + FitViewModel = new FitViewModel() { BoundingRect = DiagramViewModelHelper.GetBoundingRectangle(Items.OfType()), FitMode = FitMode.FitAuto }; + } } private void ExecuteFitWidthCommand(object parameter) { - FitViewModel = new FitViewModel() { BoundingRect = DiagramViewModelHelper.GetBoundingRectangle(Items.OfType()), FitMode = FitMode.FitWidth }; + if (Items.Any()) + { + FitViewModel = new FitViewModel() { BoundingRect = DiagramViewModelHelper.GetBoundingRectangle(Items.OfType()), FitMode = FitMode.FitWidth }; + } } private void ExecuteFitHeightCommand(object parameter) { - FitViewModel = new FitViewModel() { BoundingRect = DiagramViewModelHelper.GetBoundingRectangle(Items.OfType()), FitMode = FitMode.FitHeight }; + if (Items.Any()) + { + FitViewModel = new FitViewModel() { BoundingRect = DiagramViewModelHelper.GetBoundingRectangle(Items.OfType()), FitMode = FitMode.FitHeight }; + } } #endregion @@ -2884,8 +2893,8 @@ namespace AIStudio.Wpf.DiagramDesigner { Dictionary> infos = items.ToDictionary(p => p, p => new Tuple( - p.FontViewModel.GetPropertyValue("FontColor"), - p.ColorViewModel.GetPropertyValue("FillColor"), + p.FontViewModel.GetPropertyValue("FontColor"), + p.ColorViewModel.GetPropertyValue("FillColor"), p.ColorViewModel.GetPropertyValue("LineColor"), p.ColorViewModel.GetPropertyValue("LineWidth"))); DoCommandManager.DoNewCommand(this.ToString(),