保持表单和控制比例为任何屏幕大小部署c#应用程序

时间:2014-04-18 12:44:02

标签: c# winforms screen screen-resolution

我知道这是一个已经听过的#34;问题:我经常搜索但我找不到任何让我清醒的事情。

我正在开发一个带有GUI的c#应用程序,其中包含一些控件,如按钮(用图像制作)和文本。

我开发它将主表单大小设置为800x600但现在我需要该应用程序也可以在1920x1080屏幕上工作。

两个问题:

  1. 如果我在主窗体的右上角附近放置一个按钮并将AnchorStyles设置为右上角,当我切换到大屏幕时,按钮(按比例)更多靠近左上角而不是小屏幕(因为锚保持与边界的距离)。有没有办法设置与边界成比例的距离?

  2. 如何根据屏幕尺寸按比例缩放控件的尺寸?我应该像建议的here一样使用AutoScaleMode吗?

1 个答案:

答案 0 :(得分:0)

有一种方法可以在设计时向表单添加功能 - ToolTip控件执行此功能,使表单上的每个控件都可以使用属性。这些被称为“扩展器提供商”
http://msdn.microsoft.com/en-us/library/ms171836
您可能希望查看控件,并在设计时缓存其大小和字体以及表单的大小。 提供程序将在运行时挂起form.SizeChanged事件。当尺寸改变时,您使用表格的新的和原始(设计时)尺寸来计算X和Y比率。然后,您将浏览每个控件并使用它的设计时间大小和比率来确定其新大小和字体大小。如果您允许用户选择与原始尺寸不同的尺寸,则可能会出现这种情况 无论如何,这就是在Delphi中完成的,每个人都知道如果你能用Delphi做到,你可以在C#中做到这一点:)