Skip to content

Commit 3ce1a09

Browse files
committed
adjust cursors on crop
1 parent 2057db5 commit 3ce1a09

File tree

4 files changed

+35
-24
lines changed

4 files changed

+35
-24
lines changed

MainWindow.xaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636
<wpfui:TitleBar
3737
x:Name="wpfuiTitleBar"
38-
Title="Magick Crop by TheJoeFin v1.2.1"
38+
Title="Magick Crop by TheJoeFin v1.3.0"
3939
Height="32"
4040
Foreground="{wpfui:ThemeResource TextFillColorPrimaryBrush}">
4141
<wpfui:TitleBar.Resources>
@@ -259,6 +259,10 @@
259259
Name="CropImage"
260260
Click="CropImage_Click"
261261
Header="Crop Image" />
262+
<MenuItem
263+
Name="PerspectiveCorrectionMenuItem"
264+
Click="PerspectiveCorrectionMenuItem_Click"
265+
Header="Perspective Correction" />
262266
</ContextMenu>
263267
</wpfui:DropDownButton.Flyout>
264268
<wpfui:SymbolIcon Symbol="ImageEdit24" />

MainWindow.xaml.cs

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
using System.Windows.Controls;
88
using System.Windows.Input;
99
using System.Windows.Media;
10-
using System.Windows.Media.Imaging;
1110
using System.Windows.Shapes;
1211
using Wpf.Ui;
1312
using Wpf.Ui.Appearance;
@@ -32,6 +31,7 @@ public partial class MainWindow : FluentWindow
3231
private string openedFileName = string.Empty;
3332

3433
private List<UIElement> _polygonElements;
34+
private Visibility _perspectiveHandlesState = Visibility.Visible;
3535

3636
public MainWindow()
3737
{
@@ -130,7 +130,6 @@ private void PanCanvas(MouseEventArgs e)
130130
mat.Translate(deltaX, deltaY);
131131
matTrans.Matrix = mat;
132132
e.Handled = true;
133-
Debug.WriteLine($"scaleFactor: {scaleFactor}");
134133
}
135134

136135
private void MovePolyline(Point newPoint)
@@ -449,7 +448,6 @@ private void ShapeCanvas_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
449448

450449
scaleFactor = e.Delta > 0 ? 1.1 : 1 / 1.1;
451450

452-
Debug.WriteLine($"scaleFactor: {scaleFactor}");
453451
Matrix mat = matTrans.Matrix;
454452
mat.ScaleAt(scaleFactor, scaleFactor, pos1.X, pos1.Y);
455453
matTrans.Matrix = mat;
@@ -771,6 +769,8 @@ private void CropImage_Click(object sender, RoutedEventArgs e)
771769
ApplySaveSplitButton.Visibility = Visibility.Collapsed;
772770
CropButtonPanel.Visibility = Visibility.Visible;
773771

772+
_perspectiveHandlesState = TopLeft.Visibility;
773+
774774
foreach (UIElement element in _polygonElements)
775775
element.Visibility = Visibility.Collapsed;
776776

@@ -779,12 +779,6 @@ private void CropImage_Click(object sender, RoutedEventArgs e)
779779

780780
private async void ApplyCropButton_Click(object sender, RoutedEventArgs e)
781781
{
782-
CropButtonPanel.Visibility = Visibility.Collapsed;
783-
ApplySaveSplitButton.Visibility = Visibility.Visible;
784-
785-
foreach (UIElement element in _polygonElements)
786-
element.Visibility = Visibility.Visible;
787-
788782
if (string.IsNullOrEmpty(imagePath))
789783
return;
790784

@@ -805,8 +799,14 @@ private async void ApplyCropButton_Click(object sender, RoutedEventArgs e)
805799

806800
MainImage.Source = magickImage.ToBitmapSource();
807801

808-
CroppingRectangle.Visibility = Visibility.Collapsed;
809802
SetUiForCompletedTask();
803+
804+
foreach (UIElement element in _polygonElements)
805+
element.Visibility = _perspectiveHandlesState;
806+
807+
CropButtonPanel.Visibility = Visibility.Collapsed;
808+
ApplySaveSplitButton.Visibility = Visibility.Visible;
809+
CroppingRectangle.Visibility = Visibility.Collapsed;
810810
}
811811

812812
private void CancelCrop_Click(object sender, RoutedEventArgs e)
@@ -815,9 +815,19 @@ private void CancelCrop_Click(object sender, RoutedEventArgs e)
815815
ApplySaveSplitButton.Visibility = Visibility.Visible;
816816

817817
foreach (UIElement element in _polygonElements)
818-
element.Visibility = Visibility.Visible;
818+
element.Visibility = _perspectiveHandlesState;
819+
820+
CroppingRectangle.Visibility = Visibility.Collapsed;
821+
}
819822

823+
private void PerspectiveCorrectionMenuItem_Click(object sender, RoutedEventArgs e)
824+
{
820825
CroppingRectangle.Visibility = Visibility.Collapsed;
826+
827+
Visibility newState = TopLeft.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
828+
829+
foreach (UIElement element in _polygonElements)
830+
element.Visibility = newState;
821831
}
822832
}
823833

ResizableRectangle.xaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<Grid>
2626
<Rectangle
2727
x:Name="rectangle"
28-
Cursor="ScrollAll"
28+
Cursor="SizeAll"
2929
Fill="Transparent"
3030
MouseDown="element_MouseDown"
3131
Stroke="Blue"
@@ -37,31 +37,31 @@
3737
Margin="-5,-5,0,0"
3838
HorizontalAlignment="Left"
3939
VerticalAlignment="Top"
40-
Cursor="ScrollNW"
40+
Cursor="SizeNWSE"
4141
Fill="Blue"
4242
MouseDown="element_MouseDown"
4343
Tag="TopLeft" />
4444
<Ellipse
4545
Margin="0,-5,-5,0"
4646
HorizontalAlignment="Right"
4747
VerticalAlignment="Top"
48-
Cursor="ScrollNE"
48+
Cursor="SizeNESW"
4949
Fill="Blue"
5050
MouseDown="element_MouseDown"
5151
Tag="TopRight" />
5252
<Ellipse
5353
Margin="0,0,-5,-5"
5454
HorizontalAlignment="Right"
5555
VerticalAlignment="Bottom"
56-
Cursor="ScrollSE"
56+
Cursor="SizeNWSE"
5757
Fill="Blue"
5858
MouseDown="element_MouseDown"
5959
Tag="BottomRight" />
6060
<Ellipse
6161
Margin="-5,0,0,-5"
6262
HorizontalAlignment="Left"
6363
VerticalAlignment="Bottom"
64-
Cursor="ScrollSW"
64+
Cursor="SizeNESW"
6565
Fill="Blue"
6666
MouseDown="element_MouseDown"
6767
Tag="BottomLeft" />
@@ -72,7 +72,7 @@
7272
Margin="0,-3,0,0"
7373
HorizontalAlignment="Center"
7474
VerticalAlignment="Top"
75-
Cursor="ScrollNS"
75+
Cursor="SizeNS"
7676
Fill="Blue"
7777
MouseDown="element_MouseDown"
7878
RadiusX="4"
@@ -86,7 +86,7 @@
8686
Margin="0,0,-3,0"
8787
HorizontalAlignment="Right"
8888
VerticalAlignment="Center"
89-
Cursor="ScrollWE"
89+
Cursor="SizeWE"
9090
Fill="Blue"
9191
MouseDown="element_MouseDown"
9292
RadiusX="4"
@@ -100,7 +100,7 @@
100100
Margin="0,0,0,-3"
101101
HorizontalAlignment="Center"
102102
VerticalAlignment="Bottom"
103-
Cursor="ScrollNS"
103+
Cursor="SizeNS"
104104
Fill="Blue"
105105
MouseDown="element_MouseDown"
106106
RadiusX="4"
@@ -114,7 +114,7 @@
114114
Margin="-3,0,0,0"
115115
HorizontalAlignment="Left"
116116
VerticalAlignment="Center"
117-
Cursor="ScrollWE"
117+
Cursor="SizeWE"
118118
Fill="Blue"
119119
MouseDown="element_MouseDown"
120120
RadiusX="4"

ResizableRectangle.xaml.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using ImageMagick;
2-
using System.Diagnostics;
32
using System.Windows;
43
using System.Windows.Controls;
54
using System.Windows.Input;
@@ -54,8 +53,6 @@ private void UserControl_MouseMove(object sender, MouseEventArgs e)
5453
double canvasDeltaX = position.X - MouseDownCanvasPoint.Value.X;
5554
double canvasDeltaY = position.Y - MouseDownCanvasPoint.Value.Y;
5655

57-
Debug.WriteLine($"canvasDeltaX = {canvasDeltaX}, canvasDeltaY = {canvasDeltaY}");
58-
5956
switch (KindOfMove)
6057
{
6158
case MovingKind.Pan:

0 commit comments

Comments
 (0)