From 536e6b7b9f2a394500836740da06a1e0d87191c4 Mon Sep 17 00:00:00 2001 From: DB P Date: Sat, 24 Jan 2026 12:29:55 +0900 Subject: [PATCH 1/4] Fix Border Background --- DeskFrame/DeskFrameWindow.xaml.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/DeskFrame/DeskFrameWindow.xaml.cs b/DeskFrame/DeskFrameWindow.xaml.cs index 2239644..95d1b04 100644 --- a/DeskFrame/DeskFrameWindow.xaml.cs +++ b/DeskFrame/DeskFrameWindow.xaml.cs @@ -3042,7 +3042,7 @@ private void FileItem_MouseEnter(object sender, MouseEventArgs? e) if (_canChangeItemPosition && _isDragging && !fileItem.IsSelected) { - fileItem.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); + border.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); fileItem.IsMoveBarVisible = true; } @@ -3059,7 +3059,7 @@ private void FileItem_MouseEnter(object sender, MouseEventArgs? e) } else { - fileItem.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); + border.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); } } else if (!_dragdropIntoFolder) @@ -3070,7 +3070,7 @@ private void FileItem_MouseEnter(object sender, MouseEventArgs? e) } else { - fileItem.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); + border.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); } } if (showFolderInGrid.Visibility == Visibility.Visible && !fileItem.IsSelected && fileItem.IsFolder) @@ -3094,11 +3094,11 @@ private void FileItem_MouseLeave(object sender, MouseEventArgs? e) _dropIntoFolderPath = ""; if (!fileItem.IsSelected) { - fileItem.Background = fileItem.IsSelected ? new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)) : Brushes.Transparent; + border.Background = fileItem.IsSelected ? new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)) : Brushes.Transparent; } else { - fileItem.Background = new SolidColorBrush(Color.FromArgb(50, 255, 255, 255)); + border.Background = new SolidColorBrush(Color.FromArgb(50, 255, 255, 255)); } if (showFolderInGrid.Visibility == Visibility.Visible && !fileItem.IsSelected /*&& !fileItem.IsFolder*/) { From d6cf69293af83ddb8a8e46230201b2265711f1a6 Mon Sep 17 00:00:00 2001 From: DB P Date: Sat, 24 Jan 2026 17:56:09 +0900 Subject: [PATCH 2/4] - Added manifest for DPI Awareness - Fix Window_MouseMove function --- DeskFrame/DeskFrame.csproj | 1 + DeskFrame/DeskFrameWindow.xaml.cs | 17 +++++++++++++---- DeskFrame/app.manifest | 26 ++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 DeskFrame/app.manifest diff --git a/DeskFrame/DeskFrame.csproj b/DeskFrame/DeskFrame.csproj index a944e97..e085717 100644 --- a/DeskFrame/DeskFrame.csproj +++ b/DeskFrame/DeskFrame.csproj @@ -12,6 +12,7 @@ ico.png Icon\ico.ico AnyCPU;x64 + app.manifest diff --git a/DeskFrame/DeskFrameWindow.xaml.cs b/DeskFrame/DeskFrameWindow.xaml.cs index 2239644..df85d45 100644 --- a/DeskFrame/DeskFrameWindow.xaml.cs +++ b/DeskFrame/DeskFrameWindow.xaml.cs @@ -3520,10 +3520,19 @@ private void Window_MouseMove(object sender, MouseEventArgs e) { var cursorPos = System.Windows.Forms.Cursor.Position; var windowPos = this.PointToScreen(new System.Windows.Point(0, 0)); - var windowWidth = this.ActualWidth; - var windowHeight = this.ActualHeight; - if (cursorPos.X - 10 < windowPos.X || cursorPos.X + 10 > windowPos.X + windowWidth || - cursorPos.Y - 10 < windowPos.Y || cursorPos.Y + 10 > windowPos.Y + windowHeight) + + // [수정 1] 스케일 팩터가 0일 경우를 대비해 기본값 1.0 설정 + double scale = _windowsScalingFactor > 0 ? _windowsScalingFactor : 1.0; + + // [수정 2] 논리 크기(WPF 단위)를 물리 크기(모니터 픽셀 단위)로 변환 + var physicalWidth = this.ActualWidth * scale; + var physicalHeight = this.ActualHeight * scale; + + // [수정 3] 비교 로직에 변환된 물리 크기 사용 + if (cursorPos.X - 10 < windowPos.X || + cursorPos.X + 10 > windowPos.X + physicalWidth || + cursorPos.Y - 10 < windowPos.Y || + cursorPos.Y + 10 > windowPos.Y + physicalHeight) { if (!_contextMenuIsOpen) { diff --git a/DeskFrame/app.manifest b/DeskFrame/app.manifest new file mode 100644 index 0000000..d29317a --- /dev/null +++ b/DeskFrame/app.manifest @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + PerMonitorV2 + true/PM + + + + From f300722a30b187f8436ea4b1c60d7f1204b99917 Mon Sep 17 00:00:00 2001 From: DB P Date: Sat, 24 Jan 2026 17:56:40 +0900 Subject: [PATCH 3/4] Adjust Window_MouseMove --- DeskFrame/DeskFrameWindow.xaml.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/DeskFrame/DeskFrameWindow.xaml.cs b/DeskFrame/DeskFrameWindow.xaml.cs index df85d45..ffb6d11 100644 --- a/DeskFrame/DeskFrameWindow.xaml.cs +++ b/DeskFrame/DeskFrameWindow.xaml.cs @@ -3521,14 +3521,14 @@ private void Window_MouseMove(object sender, MouseEventArgs e) var cursorPos = System.Windows.Forms.Cursor.Position; var windowPos = this.PointToScreen(new System.Windows.Point(0, 0)); - // [수정 1] 스케일 팩터가 0일 경우를 대비해 기본값 1.0 설정 + // Set default to 1.0 in case the scale factor is 0 double scale = _windowsScalingFactor > 0 ? _windowsScalingFactor : 1.0; - // [수정 2] 논리 크기(WPF 단위)를 물리 크기(모니터 픽셀 단위)로 변환 + // Convert logical size (WPF units) to physical size (monitor pixels) var physicalWidth = this.ActualWidth * scale; var physicalHeight = this.ActualHeight * scale; - // [수정 3] 비교 로직에 변환된 물리 크기 사용 + // Use converted physical dimensions for boundary checks if (cursorPos.X - 10 < windowPos.X || cursorPos.X + 10 > windowPos.X + physicalWidth || cursorPos.Y - 10 < windowPos.Y || From a17dd394cc53e9f20c88b37e4899f908ed177667 Mon Sep 17 00:00:00 2001 From: DB P Date: Sat, 24 Jan 2026 18:06:12 +0900 Subject: [PATCH 4/4] Rollback border background code --- DeskFrame/DeskFrameWindow.xaml.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/DeskFrame/DeskFrameWindow.xaml.cs b/DeskFrame/DeskFrameWindow.xaml.cs index 9b43f73..ffb6d11 100644 --- a/DeskFrame/DeskFrameWindow.xaml.cs +++ b/DeskFrame/DeskFrameWindow.xaml.cs @@ -3042,7 +3042,7 @@ private void FileItem_MouseEnter(object sender, MouseEventArgs? e) if (_canChangeItemPosition && _isDragging && !fileItem.IsSelected) { - border.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); + fileItem.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); fileItem.IsMoveBarVisible = true; } @@ -3059,7 +3059,7 @@ private void FileItem_MouseEnter(object sender, MouseEventArgs? e) } else { - border.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); + fileItem.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); } } else if (!_dragdropIntoFolder) @@ -3070,7 +3070,7 @@ private void FileItem_MouseEnter(object sender, MouseEventArgs? e) } else { - border.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); + fileItem.Background = new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)); } } if (showFolderInGrid.Visibility == Visibility.Visible && !fileItem.IsSelected && fileItem.IsFolder) @@ -3094,11 +3094,11 @@ private void FileItem_MouseLeave(object sender, MouseEventArgs? e) _dropIntoFolderPath = ""; if (!fileItem.IsSelected) { - border.Background = fileItem.IsSelected ? new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)) : Brushes.Transparent; + fileItem.Background = fileItem.IsSelected ? new SolidColorBrush(Color.FromArgb(30, 255, 255, 255)) : Brushes.Transparent; } else { - border.Background = new SolidColorBrush(Color.FromArgb(50, 255, 255, 255)); + fileItem.Background = new SolidColorBrush(Color.FromArgb(50, 255, 255, 255)); } if (showFolderInGrid.Visibility == Visibility.Visible && !fileItem.IsSelected /*&& !fileItem.IsFolder*/) {