From 40f5491f5cf47010981ea69b1756222efa617e8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Montilla=20Kry=C5=A1tof?= Date: Mon, 8 Apr 2019 14:38:45 +0200 Subject: [PATCH 1/2] NotifyIcon Context Menu Position Fix --- .gitignore | 4 ++++ .../HandyControlDemo_Net_GE45.csproj | 4 ++-- .../HandyControl_Net_GE45/HandyControl_Net_GE45.csproj | 4 ++-- .../HandyControl_Shared/Controls/Other/NotifyIcon.cs | 10 ++-------- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index f5e0eb7f..d2b39f9f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,7 @@ src/Net_GE45/HandyControl_Net_GE45/obj src/Net_GE45/HandyControlDemo_Net_GE45/bin src/Net_GE45/HandyControlDemo_Net_GE45/obj *.user +/.vs/HandyControl/v16/.suo +/.vs/ProjectSettings.json +/.vs/VSWorkspaceState.json +/.vs/slnx.sqlite diff --git a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj index 6316de29..5aead87b 100644 --- a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj +++ b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj @@ -36,7 +36,7 @@ DEBUG;TRACE prompt 4 - v4.7 + v4.7.2 AnyCPU @@ -56,7 +56,7 @@ TRACE prompt 4 - v4.7 + v4.7.2 ..\..\Shared\HandyControlDemo_Shared\Resources\Img\icon.ico diff --git a/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj b/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj index eaebb56e..52fee2f9 100644 --- a/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj +++ b/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj @@ -33,7 +33,7 @@ DEBUG;TRACE prompt 4 - v4.7 + v4.7.2 netgt40 @@ -66,7 +66,7 @@ prompt 4 bin\Release\HandyControl.xml - v4.7 + v4.7.2 netgt40 diff --git a/src/Shared/HandyControl_Shared/Controls/Other/NotifyIcon.cs b/src/Shared/HandyControl_Shared/Controls/Other/NotifyIcon.cs index fa1598a5..db2715bc 100644 --- a/src/Shared/HandyControl_Shared/Controls/Other/NotifyIcon.cs +++ b/src/Shared/HandyControl_Shared/Controls/Other/NotifyIcon.cs @@ -322,8 +322,6 @@ namespace HandyControl.Controls private void ShowContextMenu() { - var point = new POINT(); - UnsafeNativeMethods.GetCursorPos(point); if (ContextContent != null) { @@ -331,14 +329,12 @@ namespace HandyControl.Controls { _contextContent = new Popup { - Placement = PlacementMode.AbsolutePoint, + Placement = PlacementMode.Mouse, AllowsTransparency = true, StaysOpen = false }; } - _contextContent.HorizontalOffset = point.x; - _contextContent.VerticalOffset = point.y; _contextContent.Child = new ContentControl { Content = ContextContent @@ -354,9 +350,7 @@ namespace HandyControl.Controls } else if (ContextMenu != null) { - ContextMenu.Placement = PlacementMode.AbsolutePoint; - ContextMenu.HorizontalOffset = point.x; - ContextMenu.VerticalOffset = point.y; + ContextMenu.Placement = PlacementMode.Mouse; ContextMenu.IsOpen = true; var handle = IntPtr.Zero; From 81f6e6959a242c52b036900457c8c11cf81a62f1 Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Mon, 8 Apr 2019 22:03:00 +0800 Subject: [PATCH 2/2] update pr/64 --- .../HandyControlDemo_Net_GE45.csproj | 4 ++-- .../HandyControl_Net_GE45.csproj | 4 ++-- .../Tools/Interop/NativeValues.cs | 19 ------------------- .../Tools/Interop/UnsafeNativeMethods.cs | 4 ---- 4 files changed, 4 insertions(+), 27 deletions(-) diff --git a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj index 5aead87b..6316de29 100644 --- a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj +++ b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj @@ -36,7 +36,7 @@ DEBUG;TRACE prompt 4 - v4.7.2 + v4.7 AnyCPU @@ -56,7 +56,7 @@ TRACE prompt 4 - v4.7.2 + v4.7 ..\..\Shared\HandyControlDemo_Shared\Resources\Img\icon.ico diff --git a/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj b/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj index 52fee2f9..eaebb56e 100644 --- a/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj +++ b/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj @@ -33,7 +33,7 @@ DEBUG;TRACE prompt 4 - v4.7.2 + v4.7 netgt40 @@ -66,7 +66,7 @@ prompt 4 bin\Release\HandyControl.xml - v4.7.2 + v4.7 netgt40 diff --git a/src/Shared/HandyControl_Shared/Tools/Interop/NativeValues.cs b/src/Shared/HandyControl_Shared/Tools/Interop/NativeValues.cs index 67796c7a..2aef2758 100644 --- a/src/Shared/HandyControl_Shared/Tools/Interop/NativeValues.cs +++ b/src/Shared/HandyControl_Shared/Tools/Interop/NativeValues.cs @@ -1,7 +1,5 @@ // ReSharper disable InconsistentNaming -using System.Runtime.InteropServices; - namespace HandyControl.Tools.Interop { internal enum SM @@ -99,21 +97,4 @@ namespace HandyControl.Tools.Interop internal const int TRUE = 1; internal const int FALSE = 0; } - - [StructLayout(LayoutKind.Sequential)] - public class POINT - { - public int x; - public int y; - - public POINT() - { - } - - public POINT(int x, int y) - { - this.x = x; - this.y = y; - } - } } \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Tools/Interop/UnsafeNativeMethods.cs b/src/Shared/HandyControl_Shared/Tools/Interop/UnsafeNativeMethods.cs index f4ff08dd..a88f2d1b 100644 --- a/src/Shared/HandyControl_Shared/Tools/Interop/UnsafeNativeMethods.cs +++ b/src/Shared/HandyControl_Shared/Tools/Interop/UnsafeNativeMethods.cs @@ -2,7 +2,6 @@ using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; -using System.Runtime.Versioning; using System.Security; using System.Text; @@ -173,9 +172,6 @@ namespace HandyControl.Tools.Interop [DllImport(ExternDll.User32, CharSet = CharSet.Auto)] public static extern IntPtr DefWindowProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); - [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] - public static extern bool GetCursorPos([In, Out] POINT pt); - [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool SetForegroundWindow(IntPtr hWnd); }