packages/MaterialDesignThemes.2.5.1/src/net45/DpiHelper.cs
(完整代码) 1KBusing System.Reflection;
using System.Windows;
using System.Windows.Media;
namespace MaterialDesignThemes.Wpf
{
internal static class DpiHelper
{
private static readonly int DpiX;
private static readonly int DpiY;
private const double StandardDpiX = 96.0;
private const double StandardDpiY = 96.0;
static DpiHelper()
{
var dpiXProperty = typeof(SystemParameters).GetProperty("DpiX", BindingFlags.NonPublic | BindingFlags.Static);
var dpiYProperty = typeof(SystemParameters).GetProperty("Dpi", BindingFlags.NonPublic | BindingFlags.Static);
DpiX = (int)dpiXProperty.GetValue(null, null);
DpiY = (int)dpiYProperty.GetValue(null, null);
}
public static double TransformToDeviceY(Visual visual, double y)
{
var source = PresentationSource.FromVisual(visual);
if (source?.CompositionTarget != null) return y * source.CompositionTarget.TransformToDevice.M22;
return TransformToDeviceY(y);
}
public static double TransformToDeviceX(Visual visual, double x)
{
var source = PresentationSource.FromVisual(visual);
if (source?.CompositionTarget != null) return x * source.CompositionTarget.TransformToDevice.M11;
return TransformToDeviceX(x);
}
public static double TransformToDeviceY(double y)
{
return y * DpiY / StandardDpiY;
}
public static double TransformToDeviceX(double x)
{
return x * DpiX / StandardDpiX;
}
}
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
