Sic.Framework/MECF.Framework.Common/Hardcodet/Wpf/TaskbarNotification/Interop/TrayInfo.cs

49 lines
1.2 KiB
C#

using System.Drawing;
namespace Hardcodet.Wpf.TaskbarNotification.Interop
{
public static class TrayInfo
{
public static Point GetTrayLocation()
{
int num = 2;
AppBarInfo appBarInfo = new AppBarInfo();
appBarInfo.GetSystemTaskBarPosition();
Rectangle workArea = appBarInfo.WorkArea;
int x = 0;
int y = 0;
switch (appBarInfo.Edge)
{
case AppBarInfo.ScreenEdge.Left:
x = workArea.Right + num;
y = workArea.Bottom;
break;
case AppBarInfo.ScreenEdge.Bottom:
x = workArea.Right;
y = workArea.Bottom - workArea.Height - num;
break;
case AppBarInfo.ScreenEdge.Top:
x = workArea.Right;
y = workArea.Top + workArea.Height + num;
break;
case AppBarInfo.ScreenEdge.Right:
x = workArea.Right - workArea.Width - num;
y = workArea.Bottom;
break;
}
Point point = default(Point);
point.X = x;
point.Y = y;
return GetDeviceCoordinates(point);
}
public static Point GetDeviceCoordinates(Point point)
{
Point result = default(Point);
result.X = (int)((double)point.X / SystemInfo.DpiFactorX);
result.Y = (int)((double)point.Y / SystemInfo.DpiFactorY);
return result;
}
}
}