锚点自动缩放大小 - 重叠控件

时间:2012-07-03 09:14:21

标签: c# .net winforms controls scaling

我在Windows窗体中调整控件大小和缩放时遇到了一些麻烦。我已经设置了锚点,以便控件与表单保持成比例,这非常有用。然而,当我认为控制原点也会随着形式缩放而缩放和改变时,也许我期待太多,但事实并非如此,我发现我的控件重叠。这是一些截图;

enter image description here

enter image description here

任何人都知道我可以采取哪种方法来解决这个问题?也许我需要将控件来源设置为可缩放的动态绘图点,但是然后在缩放表单时进行重绘,还是仅在创建时进行重绘?

编辑1:刚发现这个问题隐藏在互联网中,Problem: Anchored controls are overlapping也许我需要实现这样的事情,一个resize事件。

2 个答案:

答案 0 :(得分:3)

首选解决方案应为TableLayoutPanel。处理OnResize将变得更加脆弱。

答案 1 :(得分:1)

我想知道Anchor是否真的关于缩放,它基本上将控件的两侧固定到容器上,缩放是这个的副产品。例如。如果两者都离开了右侧锚定控制将按比例缩放,因为锚将尝试保持左侧和右侧的位置。右侧完好无损。

记住这一点,当表单大小增加并且你有更多空间时,你必须考虑你想要什么。在上面的例子中,您可能希望列表框lbLog说保持相同的大小,但面板Simulate会占用创建的任何sapce。对于这种情况,您可以将面板固定在左侧和右侧。右侧,而您将仅右侧固定列表框。

基本上,如果你想让你的所有控件按比例缩放(我想说的是真正的缩放,而不是在锚定的情况下缩放),那么锚定不是正确的解决方案。