我有一个使用 Visual Studio .NET 在 C# 1.0 中启动的应用程序。作为部分重写/升级的一部分,我希望应用程序能够利用 Windows Forms 2.0 中的表单自动缩放功能。这些功能依赖于设置 AutoScaleDimensions 属性,这应该由设计人员完成。我添加到项目中的新自定义表单是使用正确的设计器代码设置的,但是我所有现有的表单和控件都不会自动生成此属性,因此不会正确地自动缩放。我相信这是因为旧的表单是用旧的 VS2002 项目格式创建的,所有设计器生成的代码都被转储到与用户创建的代码相同的文件中;当然,现代 WinForms 应用程序会被 VS 拆分成多个文件。
我的问题:是否有任何已知方法可以将旧的 Windows 窗体项目“升级”为现代 Visual Studio 格式? (项目 文件已升级为 VS2010 格式,但表单本身仍使用单文件格式。)我希望 VS 默认生成 AutoScaleDimensions 属性,而不必通过以下方式初始化属性手。
最佳答案
您不会获得将表单类转换为分部类的帮助。真没必要,设计师还是支持老款的。如果编辑表单布局不会自动插入属性赋值,则只需将其粘贴到您自己的 ClientSize 赋值之前。首先在示例项目上试用它,只需在窗体上放置一个按钮并查看 Designer.cs 文件内容。它应该类似于:
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(...)
// etc..
您可以通过将此粘贴到您的表单代码中来尝试查看表单是否可以正确缩放而无需重新启动您的机器:
protected override void OnLoad(EventArgs e) {
this.Font = new Font(this.Font.FontFamily, 125f / 96 * this.Font.SizeInPoints);
base.OnLoad(e);
}
可能需要修改布局属性以使其看起来不错。
关于c# - 将旧的 VS 2002 Windows 窗体项目转换为新版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3427085/