study hard!

Winform으로 만든 프로그램이 해상도에 따라서 달라질 때

Hits: 5

진입 class에 아래의 class를 추가해서

public static class Dpi
    {
        [DllImport("Shcore.dll")]
        public static extern int SetProcessDpiAwareness(int processDpiAwareness);
        /// <summary>
        /// According to https://msdn.microsoft.com/en-us/library/windows/desktop/dn280512(v=vs.85).aspx
        /// </summary>
        public enum DpiAwareness
        {
            None = 0,
            SystemAware = 1,
            PerMonitorAware = 2
        }
    }

Application 진입 Main() class에 아래와 같이 설정 해 보자 ( 이게….100% 해결방법은 아님.. 주의.. )

Dpi.SetProcessDpiAwareness((int)Dpi.DpiAwareness.None);
            
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new 시작form());

부작용……이미 Dpi나 Font로 해상도 설정된 form은 아작날 수 있다는거…

object x,y 값이 23943,38444 뭐 이렇게 변경되서 한참 찾았음…..주의!!

Leave a Comment