Files
HandyControl/src/Shared/HandyControl_Shared/Tools/Helper/DpiHelper.cs
T
2019-07-21 21:47:49 +08:00

26 lines
789 B
C#

using System;
using System.Windows;
using System.Windows.Media;
namespace HandyControl.Tools
{
internal class DpiHelper
{
[ThreadStatic]
private static Matrix _transformToDip;
public static Point DevicePixelsToLogical(Point devicePoint, double dpiScaleX, double dpiScaleY)
{
_transformToDip = Matrix.Identity;
_transformToDip.Scale(1d / dpiScaleX, 1d / dpiScaleY);
return _transformToDip.Transform(devicePoint);
}
public static Size DeviceSizeToLogical(Size deviceSize, double dpiScaleX, double dpiScaleY)
{
Point pt = DevicePixelsToLogical(new Point(deviceSize.Width, deviceSize.Height), dpiScaleX, dpiScaleY);
return new Size(pt.X, pt.Y);
}
}
}