| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- // Some interop code taken from Mike Marshall's AnyForm
 
- using System.Drawing;
 
- namespace Hardcodet.Wpf.TaskbarNotification.Interop
 
- {
 
-     /// <summary>
 
-     /// Resolves the current tray position.
 
-     /// </summary>
 
-     public static class TrayInfo
 
-     {
 
-         /// <summary>
 
-         /// Gets the position of the system tray.
 
-         /// </summary>
 
-         /// <returns>Tray coordinates.</returns>
 
-         public static Point GetTrayLocation()
 
-         {
 
-             int space = 2;
 
-             var info = new AppBarInfo();
 
-             info.GetSystemTaskBarPosition();
 
-             Rectangle rcWorkArea = info.WorkArea;
 
-             int x = 0, y = 0;
 
-             switch (info.Edge)
 
-             {
 
-                 case AppBarInfo.ScreenEdge.Left:
 
-                     x = rcWorkArea.Right + space;
 
-                     y = rcWorkArea.Bottom;
 
-                     break;
 
-                 case AppBarInfo.ScreenEdge.Bottom:
 
-                     x = rcWorkArea.Right;
 
-                     y = rcWorkArea.Bottom - rcWorkArea.Height - space;
 
-                     break;
 
-                 case AppBarInfo.ScreenEdge.Top:
 
-                     x = rcWorkArea.Right;
 
-                     y = rcWorkArea.Top + rcWorkArea.Height + space;
 
-                     break;
 
-                 case AppBarInfo.ScreenEdge.Right:
 
-                     x = rcWorkArea.Right - rcWorkArea.Width - space;
 
-                     y = rcWorkArea.Bottom;
 
-                     break;
 
-             }
 
-             return GetDeviceCoordinates(new Point {X = x, Y = y});
 
-         }
 
-         /// <summary>
 
-         /// Recalculates OS coordinates in order to support WPFs coordinate
 
-         /// system if OS scaling (DPIs) is not 100%.
 
-         /// </summary>
 
-         /// <param name="point">Point</param>
 
-         /// <returns>Point</returns>
 
-         public static Point GetDeviceCoordinates(Point point)
 
-         {
 
-           return new Point
 
-           {
 
-               X = (int)(point.X / SystemInfo.DpiFactorX),
 
-               Y = (int)(point.Y / SystemInfo.DpiFactorY)
 
-           };
 
-         }
 
-     }
 
- }
 
 
  |