Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使c#桌面应用程序以任何屏幕分辨率运行?_C# - Fatal编程技术网

如何使c#桌面应用程序以任何屏幕分辨率运行?

如何使c#桌面应用程序以任何屏幕分辨率运行?,c#,C#,我想在不同的屏幕分辨率上运行我的桌面程序 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 Stoc

我想在不同的屏幕分辨率上运行我的桌面程序

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 Stock {
  public partial class Form1 : Form {
    public Form1() { InitializeComponent(); }
    private void Form1_Load(object sender, EventArgs e) {
      this.Dock = DockStyle.Fill;
      this.AutoSize = true;
      this.WindowState = WindowState.maximized;
    }
  }
} 

根据我使用Winform和WPF的经验,要使事情可扩展到大多数屏幕分辨率,应该使用某种网格或“流”布局

在Winforms中,这最好通过使用
TableLayoutPanel
控件来实现。布局面板允许您按百分比和绝对值分布间距(很像网页中的表格或div)

MSDN为此提供了一个很好的演练:

另一个选项是流布局。这类似于响应性设计的网站如何在垂直显示中“堆叠”元素,这些元素通常会并排放置在更宽的显示上。Winforms还有一个用于该布局的控件:

它的基本工作原理是,将布局控件放在窗体上。按照您希望的缩放方式配置布局,而不是将其他控件(按钮、文本框等)直接放在窗体上,而是将它们放在布局控件的“单元格”中


Dock=fill
应用于布局控件时,它将占据分配给它的整个区域(通常是表单本身)。然后,控件的位置将根据您设置布局控件的方式随窗体的大小进行缩放。

您能显示您尝试过的内容和不起作用的内容吗?这不是一个代码编写服务。有一些很好的建议我在google上试用过,发现解决方案是“将表单的属性设置为Dock=Fill,AutoScroll=true,那么你的表单在不同的屏幕上会有相同的大小”这句话对我不起作用,然后我试图使windowsState最大化,这样窗体将占据全屏,它可以工作,但“按钮、面板、文本框等”等控件在窗体全屏打开时保持其大小,我可以给系统添加什么;使用System.Collections.Generic;使用系统组件模型;使用系统数据;使用系统图;使用System.Linq;使用系统文本;使用System.Threading.Tasks;使用System.Windows.Forms;命名空间Stock{public分部类Form1:Form{public Form1(){InitializeComponent();}私有void Form1_加载(对象发送方,事件参数e){this.Dock=DockStyle.Fill;this.AutoSize=true;this.WindowState=WindowState.maximized;}}}}将其编辑到您的问题中-不要在评论中留下它。感谢MutantInjacodemonkey帮助我它对我有效:)