基本上,我希望所有内容(控件等)在通过拖动调整大小时随 WindowsForm 一起缩放,以便用户可以自己确定 UI 的大小。 图片并不完美,但我希望它能解释清楚:
最简单的方法是使用 (Flow/Table)LayoutPanel 和适当的 Anchor/Drop 属性,但我觉得这限制了我的设计,目前看起来像这样:
我的想法是在调用 Resize() 时缩放所有组件:
foreach(Control c in Controls){
c.Scale(scaleFactor);
}
我的问题是:位置设置不正确,确定“scaleFactor”所需的舍入导致不一致。
有没有一种干净的方法可以做到这一切?我是否必须使用 LayoutPanel 才能获得干净的方式?
最佳答案
您确定要同时缩放那些文本框和标签吗?例如,文本框具有相当标准的高度。如果窗口太小以至于文本对于按钮/文本框等来说太大了,你会怎么想?
可调整大小窗口内容的典型调整逻辑有点不同。我宁愿为组框创建一个无边框面板,并像这样堆叠/停靠所有内容:
如果我调整这个窗口的大小,它将看起来像这样:
顺便说一句,我不喜欢这样调整按钮的大小。我只会为它们使用 Anchor = Left, Right
以便它们保持高度。并且不要忘记为表单设置适当的 MinimumSize
。
关于c# - 缩放窗口窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33911313/