加载 WPF 后调整 Windows 窗体的大小

Kip*_*per 5 wpf resize dpi winforms windows-10

我遇到了一种奇怪的行为,对此我目前没有解释或解决方案,我希望有人对此有所了解。

所以我有一个简单的 Windows 窗体应用程序,只有一个按钮,单击按钮将加载PresentationFramework程序集:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Assembly.Load("PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我在 Windows 10 上设置了自定义缩放大小(例如 200%)时,然后单击按钮,表单将调整大小,请参见下图。

- 点击前:

按钮单击前的 Form1

- 点击后:

单击按钮后的 Form1

但是,当我使用任何提供的缩放选项(当我不使用自定义缩放时)时,不会发生这种行为:

缩放选项

我最初认为问题与 有关Form.AutoScaleMode,但似乎并非如此。此外,我无法观察到Formobject 中任何更改的值。

mm8*_*mm8 5

我不确定我在这里是否完全理解您的问题,但您可以尝试将以下属性添加到您的AssemblyInfo.cs 文件(您将在 Visual Studio 中解决方案资源管理器的“属性”节点下找到它):

[assembly: System.Windows.Media.DisableDpiAwareness]
Run Code Online (Sandbox Code Playgroud)

这将允许应用程序禁用对所有用户界面元素使用每英寸点数 (dpi) 感知。