Skip to content

Commit b1d9066

Browse files
author
vum
committed
解决了若干问题
1 parent 8145898 commit b1d9066

21 files changed

+317
-308
lines changed

.vs/ShowWrite/v17/.suo

-512 Bytes
Binary file not shown.

.vs/ShowWrite/v17/DocumentLayout.backup.json

Lines changed: 1 addition & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,6 @@
66
"AbsoluteMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|c:\\users\\vum\\source\\repos\\showwrite\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
77
"RelativeMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|solutionrelative:mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
88
},
9-
{
10-
"AbsoluteMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|c:\\users\\vum\\source\\repos\\showwrite\\app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
11-
"RelativeMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|solutionrelative:app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
12-
},
13-
{
14-
"AbsoluteMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|c:\\users\\vum\\source\\repos\\showwrite\\mw\\splashwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
15-
"RelativeMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|solutionrelative:mw\\splashwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
16-
},
17-
{
18-
"AbsoluteMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|c:\\users\\vum\\source\\repos\\showwrite\\mw\\splashwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
19-
"RelativeMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|solutionrelative:mw\\splashwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
20-
},
219
{
2210
"AbsoluteMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|c:\\users\\vum\\source\\repos\\showwrite\\mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
2311
"RelativeMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|solutionrelative:mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
@@ -48,52 +36,14 @@
4836
"RelativeDocumentMoniker": "MainWindow.xaml.cs",
4937
"ToolTip": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MainWindow.xaml.cs",
5038
"RelativeToolTip": "MainWindow.xaml.cs",
51-
"ViewState": "AgIAAIcAAAAAAAAAAAAUwJUAAAAtAAAAAAAAAA==",
39+
"ViewState": "AgIAAFYMAAAAAAAAAAAqwGoMAAAZAAAAAAAAAA==",
5240
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
5341
"WhenOpened": "2026-02-03T13:44:15.556Z",
5442
"EditorCaption": ""
5543
},
5644
{
5745
"$type": "Document",
5846
"DocumentIndex": 1,
59-
"Title": "App.xaml.cs",
60-
"DocumentMoniker": "C:\\Users\\vum\\source\\repos\\ShowWrite\\App.xaml.cs",
61-
"RelativeDocumentMoniker": "App.xaml.cs",
62-
"ToolTip": "C:\\Users\\vum\\source\\repos\\ShowWrite\\App.xaml.cs",
63-
"RelativeToolTip": "App.xaml.cs",
64-
"ViewState": "AgIAAEQAAAAAAAAAAAAwwB8AAAAvAAAAAAAAAA==",
65-
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
66-
"WhenOpened": "2026-02-03T13:42:56.065Z",
67-
"EditorCaption": ""
68-
},
69-
{
70-
"$type": "Document",
71-
"DocumentIndex": 2,
72-
"Title": "SplashWindow.xaml.cs",
73-
"DocumentMoniker": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MW\\SplashWindow.xaml.cs",
74-
"RelativeDocumentMoniker": "MW\\SplashWindow.xaml.cs",
75-
"ToolTip": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MW\\SplashWindow.xaml.cs",
76-
"RelativeToolTip": "MW\\SplashWindow.xaml.cs",
77-
"ViewState": "AgIAAIUAAAAAAAAAAAAcwFIAAAA3AAAAAAAAAA==",
78-
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
79-
"WhenOpened": "2026-02-03T13:12:58.726Z",
80-
"EditorCaption": ""
81-
},
82-
{
83-
"$type": "Document",
84-
"DocumentIndex": 3,
85-
"Title": "SplashWindow.xaml",
86-
"DocumentMoniker": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MW\\SplashWindow.xaml",
87-
"RelativeDocumentMoniker": "MW\\SplashWindow.xaml",
88-
"ToolTip": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MW\\SplashWindow.xaml",
89-
"RelativeToolTip": "MW\\SplashWindow.xaml",
90-
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
91-
"WhenOpened": "2026-02-03T13:12:31.313Z",
92-
"EditorCaption": ""
93-
},
94-
{
95-
"$type": "Document",
96-
"DocumentIndex": 4,
9747
"Title": "MainWindow.xaml",
9848
"DocumentMoniker": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MainWindow.xaml",
9949
"RelativeDocumentMoniker": "MainWindow.xaml",

.vs/ShowWrite/v17/DocumentLayout.json

Lines changed: 15 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,6 @@
1010
"AbsoluteMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|c:\\users\\vum\\source\\repos\\showwrite\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
1111
"RelativeMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|solutionrelative:mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
1212
},
13-
{
14-
"AbsoluteMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|c:\\users\\vum\\source\\repos\\showwrite\\app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
15-
"RelativeMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|solutionrelative:app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
16-
},
17-
{
18-
"AbsoluteMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|c:\\users\\vum\\source\\repos\\showwrite\\mw\\splashwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
19-
"RelativeMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|solutionrelative:mw\\splashwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
20-
},
2113
{
2214
"AbsoluteMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|c:\\users\\vum\\source\\repos\\showwrite\\mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
2315
"RelativeMoniker": "D:0:0:{1FEBD063-10B8-47FD-A2A6-B3F3270EB83C}|ShowWrite.csproj|solutionrelative:mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
@@ -30,12 +22,25 @@
3022
"DocumentGroups": [
3123
{
3224
"DockedWidth": 200,
33-
"SelectedChildIndex": 4,
25+
"SelectedChildIndex": 1,
3426
"Children": [
3527
{
3628
"$type": "Bookmark",
3729
"Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
3830
},
31+
{
32+
"$type": "Document",
33+
"DocumentIndex": 0,
34+
"Title": "SplashWindow.xaml.cs",
35+
"DocumentMoniker": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MW\\SplashWindow.xaml.cs",
36+
"RelativeDocumentMoniker": "MW\\SplashWindow.xaml.cs",
37+
"ToolTip": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MW\\SplashWindow.xaml.cs",
38+
"RelativeToolTip": "MW\\SplashWindow.xaml.cs",
39+
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAABXAAAAAAAAAA==",
40+
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
41+
"WhenOpened": "2026-02-03T14:56:59.266Z",
42+
"EditorCaption": ""
43+
},
3944
{
4045
"$type": "Bookmark",
4146
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
@@ -48,52 +53,14 @@
4853
"RelativeDocumentMoniker": "MainWindow.xaml.cs",
4954
"ToolTip": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MainWindow.xaml.cs",
5055
"RelativeToolTip": "MainWindow.xaml.cs",
51-
"ViewState": "AgIAAIcAAAAAAAAAAAAUwJUAAAAtAAAAAAAAAA==",
56+
"ViewState": "AgIAAFYMAAAAAAAAAAAqwGoMAAAZAAAAAAAAAA==",
5257
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
5358
"WhenOpened": "2026-02-03T13:44:15.556Z",
5459
"EditorCaption": ""
5560
},
5661
{
5762
"$type": "Document",
5863
"DocumentIndex": 2,
59-
"Title": "App.xaml.cs",
60-
"DocumentMoniker": "C:\\Users\\vum\\source\\repos\\ShowWrite\\App.xaml.cs",
61-
"RelativeDocumentMoniker": "App.xaml.cs",
62-
"ToolTip": "C:\\Users\\vum\\source\\repos\\ShowWrite\\App.xaml.cs",
63-
"RelativeToolTip": "App.xaml.cs",
64-
"ViewState": "AgIAAEQAAAAAAAAAAAAwwB8AAAAvAAAAAAAAAA==",
65-
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
66-
"WhenOpened": "2026-02-03T13:42:56.065Z",
67-
"EditorCaption": ""
68-
},
69-
{
70-
"$type": "Document",
71-
"DocumentIndex": 0,
72-
"Title": "SplashWindow.xaml.cs",
73-
"DocumentMoniker": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MW\\SplashWindow.xaml.cs",
74-
"RelativeDocumentMoniker": "MW\\SplashWindow.xaml.cs",
75-
"ToolTip": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MW\\SplashWindow.xaml.cs",
76-
"RelativeToolTip": "MW\\SplashWindow.xaml.cs",
77-
"ViewState": "AgIAAEEAAAAAAAAAAAAwwF8AAAAJAAAAAAAAAA==",
78-
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
79-
"WhenOpened": "2026-02-03T13:12:58.726Z",
80-
"EditorCaption": ""
81-
},
82-
{
83-
"$type": "Document",
84-
"DocumentIndex": 3,
85-
"Title": "SplashWindow.xaml",
86-
"DocumentMoniker": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MW\\SplashWindow.xaml",
87-
"RelativeDocumentMoniker": "MW\\SplashWindow.xaml",
88-
"ToolTip": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MW\\SplashWindow.xaml",
89-
"RelativeToolTip": "MW\\SplashWindow.xaml",
90-
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
91-
"WhenOpened": "2026-02-03T13:12:31.313Z",
92-
"EditorCaption": ""
93-
},
94-
{
95-
"$type": "Document",
96-
"DocumentIndex": 4,
9764
"Title": "MainWindow.xaml",
9865
"DocumentMoniker": "C:\\Users\\vum\\source\\repos\\ShowWrite\\MainWindow.xaml",
9966
"RelativeDocumentMoniker": "MainWindow.xaml",

MW/LogManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,11 +123,11 @@ public void LogSystemStatus()
123123
{
124124
try
125125
{
126-
var memory = GC.GetTotalMemory(false) / 1024 / 1024;
126+
//var memory = GC.GetTotalMemory(false) / 1024 / 1024;
127127
var driveInfo = new DriveInfo(Path.GetPathRoot(_logDirectory));
128128
var availableSpace = driveInfo.AvailableFreeSpace / 1024 / 1024 / 1024;
129129

130-
Logger.Info("System", $"系统状态 - 内存: {memory} MB, 磁盘可用空间: {availableSpace} GB, 运行时间: {DateTime.Now - System.Diagnostics.Process.GetCurrentProcess().StartTime}");
130+
Logger.Info("System", $"系统状态 - 软件安装目录的磁盘可用空间: {availableSpace} GB, 运行时间: {DateTime.Now - System.Diagnostics.Process.GetCurrentProcess().StartTime}");
131131
}
132132
catch (Exception ex)
133133
{

MW/PanZoomManager.cs

Lines changed: 68 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
using System.Windows;
33
using System.Windows.Input;
44
using System.Windows.Media;
5-
using Application = System.Windows.Application;
6-
using Point = System.Windows.Point;
7-
85

96
namespace ShowWrite
107
{
@@ -13,15 +10,14 @@ namespace ShowWrite
1310
/// </summary>
1411
public class PanZoomManager
1512
{
16-
1713
private readonly ScaleTransform _zoomTransform;
1814
private readonly TranslateTransform _panTransform;
1915
private readonly UIElement _targetElement;
2016
private readonly DrawingManager _drawingManager;
2117

2218
private double _currentZoom = 1.0;
2319
private bool _isPanning = false;
24-
private System.Windows.Point _lastMousePos; // 明确命名空间
20+
private System.Windows.Point _lastMousePos; // 明确指定为 WPF 的 Point
2521

2622
// 笔迹缩放补偿相关
2723
private double _originalPenWidth = 2.0;
@@ -107,20 +103,32 @@ public void SetOriginalPenWidth(double width)
107103
/// <summary>
108104
/// 鼠标按下事件处理
109105
/// </summary>
110-
public void HandleMouseDown(MouseButtonEventArgs e, DrawingManager.ToolMode currentMode)
106+
public void HandleMouseDown(System.Windows.Input.MouseButtonEventArgs e, DrawingManager.ToolMode currentMode)
111107
{
112108
if (!CheckEnabled()) return;
113109

114-
if (currentMode == DrawingManager.ToolMode.Move && e.ChangedButton == MouseButton.Left)
110+
if (currentMode == DrawingManager.ToolMode.Move && e.ChangedButton == System.Windows.Input.MouseButton.Left)
115111
{
116112
try
117113
{
118114
_isPanning = true;
119-
_lastMousePos = e.GetPosition(System.Windows.Application.Current.MainWindow);
115+
116+
// 修复:使用 _targetElement 的父窗口来获取位置
117+
var window = Window.GetWindow(_targetElement);
118+
if (window != null)
119+
{
120+
_lastMousePos = e.GetPosition(window);
121+
window.Cursor = System.Windows.Input.Cursors.SizeAll;
122+
}
123+
else
124+
{
125+
// 备用方案:如果无法获取窗口,则使用 _targetElement
126+
_lastMousePos = e.GetPosition(_targetElement);
127+
}
128+
120129
_targetElement.CaptureMouse();
121130
e.Handled = true;
122131

123-
System.Windows.Application.Current.MainWindow.Cursor = System.Windows.Input.Cursors.SizeAll;
124132
Console.WriteLine($"开始拖拽: 起始点=({_lastMousePos.X:F1}, {_lastMousePos.Y:F1})");
125133
}
126134
catch (Exception ex)
@@ -142,7 +150,19 @@ public void HandleMouseMove(System.Windows.Input.MouseEventArgs e, DrawingManage
142150
{
143151
try
144152
{
145-
var currentPos = e.GetPosition(System.Windows.Application.Current.MainWindow);
153+
// 修复:使用相同的窗口获取方式
154+
var window = Window.GetWindow(_targetElement);
155+
System.Windows.Point currentPos;
156+
157+
if (window != null)
158+
{
159+
currentPos = e.GetPosition(window);
160+
}
161+
else
162+
{
163+
currentPos = e.GetPosition(_targetElement);
164+
}
165+
146166
_panTransform.X += currentPos.X - _lastMousePos.X;
147167
_panTransform.Y += currentPos.Y - _lastMousePos.Y;
148168
_lastMousePos = currentPos;
@@ -158,17 +178,24 @@ public void HandleMouseMove(System.Windows.Input.MouseEventArgs e, DrawingManage
158178
/// <summary>
159179
/// 鼠标释放事件处理
160180
/// </summary>
161-
public void HandleMouseUp(MouseButtonEventArgs e, DrawingManager.ToolMode currentMode)
181+
public void HandleMouseUp(System.Windows.Input.MouseButtonEventArgs e, DrawingManager.ToolMode currentMode)
162182
{
163183
if (!CheckEnabled()) return;
164184

165-
if (_isPanning && e.ChangedButton == MouseButton.Left)
185+
if (_isPanning && e.ChangedButton == System.Windows.Input.MouseButton.Left)
166186
{
167187
try
168188
{
169189
_isPanning = false;
170190
_targetElement.ReleaseMouseCapture();
171-
Application.Current.MainWindow.Cursor = System.Windows.Input.Cursors.Arrow;
191+
192+
// 修复:恢复光标
193+
var window = Window.GetWindow(_targetElement);
194+
if (window != null)
195+
{
196+
window.Cursor = System.Windows.Input.Cursors.Arrow;
197+
}
198+
172199
e.Handled = true;
173200
Console.WriteLine($"结束拖拽: 最终平移=({_panTransform.X:F1}, {_panTransform.Y:F1})");
174201
}
@@ -182,18 +209,18 @@ public void HandleMouseUp(MouseButtonEventArgs e, DrawingManager.ToolMode curren
182209
/// <summary>
183210
/// 鼠标滚轮事件处理
184211
/// </summary>
185-
public void HandleMouseWheel(MouseWheelEventArgs e, DrawingManager.ToolMode currentMode, UIElement zoomContainer)
212+
public void HandleMouseWheel(System.Windows.Input.MouseWheelEventArgs e, DrawingManager.ToolMode currentMode, UIElement zoomContainer)
186213
{
187214
if (!CheckEnabled()) return;
188215

189216
if (currentMode == DrawingManager.ToolMode.Move)
190217
{
191-
Point mousePos = e.GetPosition(zoomContainer);
218+
System.Windows.Point mousePos = e.GetPosition(zoomContainer);
192219
double zoomFactor = e.Delta > 0 ? 1.1 : 0.9;
193220
double newZoom = _currentZoom * zoomFactor;
194221
newZoom = Math.Max(0.1, Math.Min(10, newZoom));
195222

196-
Point relative = new Point(
223+
System.Windows.Point relative = new System.Windows.Point(
197224
(mousePos.X - _panTransform.X) / _currentZoom,
198225
(mousePos.Y - _panTransform.Y) / _currentZoom);
199226

@@ -212,25 +239,30 @@ public void HandleMouseWheel(MouseWheelEventArgs e, DrawingManager.ToolMode curr
212239
/// <summary>
213240
/// 手势操作开始
214241
/// </summary>
215-
public void HandleManipulationStarting(ManipulationStartingEventArgs e, DrawingManager.ToolMode currentMode)
242+
public void HandleManipulationStarting(System.Windows.Input.ManipulationStartingEventArgs e, DrawingManager.ToolMode currentMode)
216243
{
217244
if (!CheckEnabled()) return;
218245

219246
if (currentMode == DrawingManager.ToolMode.Move)
220247
{
221-
e.ManipulationContainer = Application.Current.MainWindow;
222-
e.Mode = ManipulationModes.Scale | ManipulationModes.Translate;
248+
// 修复:使用目标元素的窗口作为操作容器
249+
var window = Window.GetWindow(_targetElement);
250+
if (window != null)
251+
{
252+
e.ManipulationContainer = window;
253+
}
254+
e.Mode = System.Windows.Input.ManipulationModes.Scale | System.Windows.Input.ManipulationModes.Translate;
223255
}
224256
else
225257
{
226-
e.Mode = ManipulationModes.None;
258+
e.Mode = System.Windows.Input.ManipulationModes.None;
227259
}
228260
}
229261

230262
/// <summary>
231263
/// 手势操作处理
232264
/// </summary>
233-
public void HandleManipulationDelta(ManipulationDeltaEventArgs e, DrawingManager.ToolMode currentMode, UIElement container)
265+
public void HandleManipulationDelta(System.Windows.Input.ManipulationDeltaEventArgs e, DrawingManager.ToolMode currentMode, UIElement container)
234266
{
235267
if (!CheckEnabled()) return;
236268
if (currentMode != DrawingManager.ToolMode.Move) return;
@@ -240,10 +272,22 @@ public void HandleManipulationDelta(ManipulationDeltaEventArgs e, DrawingManager
240272
// 处理缩放
241273
if (delta.Scale.X != 1.0 || delta.Scale.Y != 1.0)
242274
{
243-
Point center = e.ManipulationOrigin;
244-
Point relativeCenter = container.TranslatePoint(center, Application.Current.MainWindow);
275+
System.Windows.Point center = e.ManipulationOrigin;
276+
277+
// 修复:使用目标元素的窗口作为参考
278+
var window = Window.GetWindow(_targetElement);
279+
System.Windows.Point relativeCenter;
280+
281+
if (window != null)
282+
{
283+
relativeCenter = container.TranslatePoint(center, window);
284+
}
285+
else
286+
{
287+
relativeCenter = center;
288+
}
245289

246-
Point relative = new Point(
290+
System.Windows.Point relative = new System.Windows.Point(
247291
(relativeCenter.X - _panTransform.X) / _currentZoom,
248292
(relativeCenter.Y - _panTransform.Y) / _currentZoom);
249293

0 commit comments

Comments
 (0)