2012-10-16 75 views
1

我正在使用Windows窗体项目。在这个项目中,控件的大小在设计器中设置,关闭autosize。然而,当Windows 7中的显示设置设置为中(125%)大(150%)时,控件更改大小。我怎样才能防止这种行为?显示设置更改时Windows窗体控件的大小更改

回答

0

对控件使用Anchor和Dock属性。

4

很可能你可能通过将表单的AutoScaleMode property设置为AutoScaleMode.None来关闭此行为。

也就是说,不要只是关闭自动缩放,因为它很可能是一件好事!它使您的表单可以在各种分辨率和字体比例设置下工作。例如,如果您设计了表单,但忘记了视力受损的用户(例如,将系统字体缩放比例提高到异常高的百分比的用户),则可能是由于自动缩放,表单可能仍然有效。

作为其他的答案提示,代替固定的像素值来确定各控制的位置和大小,然后关闭自动缩放的,使用自动布局技术:

  • 内把控制用于排列控制的各种容器元件(网格– TableLayoutPanel,一个接一个的— FlowLayoutPanel等);
  • 设置每个控件的DockAnchor属性;
  • 设置每个控件的AutoSizeAutoSizeMode属性。

正确地做到这一点需要一些练习,但会使表单的布局更健壮。

+0

我同意设置AutoScaleModeDpi,但是这是一个游戏键盘游戏。没有什么花哨,当然也不是我得到的报酬。所以在这个爱好项目关闭AutoScaleMode肯定是要走的路:) – Pedery

+0

好吧,对不起长时间的演讲。 (虽然我仍然认为自动布局不是那*看上去...... :) – stakx

+0

提示:http://msdn.microsoft.com/en-us/library/system.windows.forms.containercontrol.autoscalemode.aspx – Pedery

0

你的用户控件或窗体

相关问题