Windows 加载 WPF 后调整窗体大小

Windows Forms resized after loading WPF

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

所以我有一个简单的 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");
    }
}

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

- 点击前:

- 单击后:

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

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

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

[assembly: System.Windows.Media.DisableDpiAwareness]

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