From 65c376dbb9bf8b0b7ef080e90af26431adf32c45 Mon Sep 17 00:00:00 2001 From: filipeotero <89042471+filipeotero@users.noreply.github.com> Date: Wed, 1 Mar 2023 12:14:32 -0300 Subject: [PATCH] update zoom scale label position after initialization --- .../Views/Menu/PreferencesView.xaml | 4 ++-- .../Views/Menu/PreferencesView.xaml.cs | 18 ++++++++++++++---- .../LibraryViewController.cs | 19 +++++++++++++++---- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml b/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml index 70eaa4f58e2..8cfe68c4ded 100644 --- a/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml +++ b/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml @@ -1297,7 +1297,7 @@ - + diff --git a/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml.cs b/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml.cs index ffdabea07b6..11c77a9cd6d 100644 --- a/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml.cs +++ b/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -84,6 +84,7 @@ public PreferencesView(DynamoView dynamoView) viewModel.RequestShowFileDialog += OnRequestShowFileDialog; LibraryZoomScalingSlider.Value = dynViewModel.Model.PreferenceSettings.LibraryZoomScale; + updateLibraryZoomScaleValueLabel(LibraryZoomScalingSlider); } /// @@ -535,10 +536,19 @@ private void zoomScaleLevel_ValueChanged(object sender, RoutedPropertyChangedEve { Slider slider = (Slider)sender; - //Since the percentage goes from 10 to 300, the value is decremented by 10 to standardize. - double percentage = slider.Value - 10; + updateLibraryZoomScaleValueLabel(slider); + } + + private void updateLibraryZoomScaleValueLabel(Slider slider) + { + //Since the percentage goes from 25 to 300, the value is decremented by 25 to standardize. + double percentage = slider.Value - 25; + + //The margin value for the label goes from - 480 to 310, resulting in 790 pixels from the starting point to the end. + //We also standardized the values ​​of the percentage(from 0 to 275). + //The value is decreased to 480 because the margin begins at - 480 //This is the relation between the margin in pixels and the value of the percentage - double marginValue = (79 * percentage / 29) - 480; + double marginValue = (790 * percentage / 275) - 480; if (lblZoomScalingValue != null) { lblZoomScalingValue.Margin = new Thickness(marginValue, 0, 0, 0); diff --git a/src/LibraryViewExtensionWebView2/LibraryViewController.cs b/src/LibraryViewExtensionWebView2/LibraryViewController.cs index 7b0bb1414ba..367a02ae7a6 100644 --- a/src/LibraryViewExtensionWebView2/LibraryViewController.cs +++ b/src/LibraryViewExtensionWebView2/LibraryViewController.cs @@ -55,7 +55,7 @@ public class LibraryViewController : IDisposable private const int standardFontSize = 14; private const int standardScreenHeight = 1080; private double libraryFontSize; - + private const double minimumZoomScale = 0.25; /// /// Creates a LibraryViewController. @@ -339,9 +339,14 @@ private void Browser_CoreWebView2InitializationCompleted(object sender, CoreWebV } SetLibraryFontSize(); + //The default value of the zoom factor is 1.0. The value that comes from the slider is in percentage, so we divide by 100 to be equivalent + double zoomFactor = (dynamoViewModel.Model.PreferenceSettings.LibraryZoomScale / 100); - //The default value of the zoom factor is 1.0. The value that comes from the slider is in percentage, so we divide by 100 to be equivalent - browser.ZoomFactor = (double)dynamoViewModel.Model.PreferenceSettings.LibraryZoomScale / 100; + //To avoid an invalid value for the zoom factor + if (zoomFactor < minimumZoomScale) + zoomFactor = minimumZoomScale; + + browser.ZoomFactor = zoomFactor; browser.ZoomFactorChanged += Browser_ZoomFactorChanged; } @@ -557,7 +562,13 @@ private void DynamoSliderValueChanged(object sender, EventArgs e) { Slider slider = (Slider)sender; //The default value of the zoom factor is 1.0. The value that comes from the slider is in percentage, so we divide by 100 to be equivalent - browser.ZoomFactor = (double)slider.Value / 100; + double zoomFactor = slider.Value / 100; + + //To avoid an invalid value for the zoom factor + if (zoomFactor < minimumZoomScale) + zoomFactor = minimumZoomScale; + + browser.ZoomFactor = zoomFactor; dynamoViewModel.Model.PreferenceSettings.LibraryZoomScale = ((int)slider.Value); }