更改了vb.net表单和容器大小,并更改了“更改所有项目的大小”

更改了vb.net表单和容器大小,并更改了“更改所有项目的大小”,vb.net,forms,screen,Vb.net,Forms,Screen,我有一个默认为100%的应用程序,但是如果用户将屏幕更改为125%或其他,则组容器的运行时大小和表单大小本身都会失败。我错过了什么?根据条件,将在窗体上重新定位组框,并调整窗体的大小。我通过将我的系统重新设置为125%,并调整控件和窗体的运行时重新定位以使其匹配来确认这一点,然后它就工作了。以下是我所做的,到目前为止它仍在工作: 将App.manifest添加到项目中,并添加了以下代码: <asmv1:windowsSettings xmlns="http://schemas.micr

我有一个默认为100%的应用程序,但是如果用户将屏幕更改为125%或其他,则组容器的运行时大小和表单大小本身都会失败。我错过了什么?根据条件,将在窗体上重新定位组框,并调整窗体的大小。我通过将我的系统重新设置为125%,并调整控件和窗体的运行时重新定位以使其匹配来确认这一点,然后它就工作了。

以下是我所做的,到目前为止它仍在工作:

将App.manifest添加到项目中,并添加了以下代码:

  <asmv1:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <dpiAware>true/PM</dpiAware>
  </asmv1:windowsSettings>
我需要缩放控件或窗体位置的位置:


Me.Height=CInt550*g_dbl_screenDPI

看看微软关于应用程序中dpi的页面。。查看此页面。该页面使用VS2008,我使用的是VS2013,在我的系统上看不到引用的HighDPIApp.sln,在“项目”菜单中是否有用于HandsOnLabProperties的选项,我是否遗漏了什么?
Private Sub GetScreenDPI()

    Dim dspGraphics As Graphics

    dspGraphics = Me.CreateGraphics 'Graphics for user's display

    g_int_ScreenDPI = dspGraphics.DpiY

    Select Case g_int_ScreenDPI

        Case 96 'Smaller 100%

            g_dbl_screenDPI = 1

        Case 120 'Medium 125%

            g_dbl_screenDPI = 1.25

        Case 150 'Larger 150%

            g_dbl_screenDPI = 1.5

        Case Else 'Custom

            g_dbl_screenDPI = g_int_ScreenDPI / 100

    End Select

    dspGraphics.Dispose()

End Sub