【发布时间】:2018-11-07 05:21:15
【问题描述】:
从覆盖窗口大小不正确的问题继续。 所以这里是最小系统:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Size = new Size(1920, 1080);
MessageBox.Show("x:" + this.Size.Width + " y:" + this.Size.Height);
}
}
}
它说我的窗口大小是 1438x818(尽管它看起来确实填满了屏幕的桌面区域)....
做了一些新的研究 当我的尺寸设置为大于 14xx x 83x 时,问题开始出现 任何大于此的尺寸都将限制为 14xx x 83x 如果我说
this.size = new Size (500,500);
那就没事了……
[最终编辑] 好吧。我想我找到了问题所在。 https://social.msdn.microsoft.com/Forums/vstudio/en-US/60e3b413-7746-46d4-8351-0c7f4e38378f/does-form-size-has-any-limitation-like-maximum-width-or-maximum-height?forum=netfxbcl
表单大小确实有一个隐藏的限制,似乎修复它超出了我作为独立开发者的能力。我找不到隐藏的限制在哪里..
我需要做的是将表单中任何内容的逻辑坐标映射到基于 1436/1920 比例的新世界坐标。绕过问题。
【问题讨论】:
-
你的屏幕分辨率是多少
-
1920x1080................
-
为什么不只是
this.WindowState = FormWindowState.Maximized; -
这可能是一个隐藏的缩放属性问题。它覆盖了设备的屏幕,但消息框报告为 1431x774。我正在寻找规模的东西在哪里......
-
如果您在一个全新的解决方案中创建一个全新的表单,并将该代码复制到该表单的
Form_Load,它是否表现出相同的行为?跨度>