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

时间:2016-01-25 16:25:34

标签: 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 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;
    }
  }
} 

1 个答案:

答案 0 :(得分:0)

根据我使用Winform和WPF的经验,为了使事物可以扩展到大多数屏幕分辨率,你应该使用某种网格或者#34; flow"布局。

在Winforms中,最好通过使用TableLayoutPanel控件来完成。布局面板允许您按百分比和绝对值分布间距(非常类似于网页中的表格或div)。

MSDN为此提供了一个很好的演练: https://msdn.microsoft.com/en-us/library/w4yc3e8c(v=vs.90).aspx

另一种选择是流程布局。这类似于设计灵敏的网站和#34;堆栈"垂直显示中的元素通常并排放置在更宽的显示器上。 Winforms也可以控制该布局:

https://msdn.microsoft.com/en-us/library/system.windows.forms.flowlayoutpanel(v=vs.90).aspx

基本上它是如何工作的,你将布局控件放在窗体上。按照您希望它的缩放方式配置布局,而不是将其他控件(按钮,文本框等)直接放在表单上,​​而是将它们放在"单元格中。布局控制。

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