不同分辨率不同DPI下的自适应
WPF应用程序在不同分辨率下要做到自适应需要一般可以在前台使用ViewBox作为最外层容器,里面使用一个固定尺寸的容器。在后台需要动态设置窗体的尺寸,宽度和高度设置我这里采用静态类静态方法来调用:
public class WindowUtil
{
const double DpiPercent = 96;
/// <summary>
/// 获取自适应窗体宽度
/// </summary>
/// <param name="sourcewidth">窗体原宽度</param>
/// <returns>自适应宽度</returns>
public static double GetAutoWidth(double sourcewidth)
{
if (IsDpiChanged() == false)
{
return sourcewidth * SystemParameters.PrimaryScreenWidth / 1920;
}
else
{
return sourcewidth * GetScreenWidth() /