我有一个包含 2 个子控件的用户控件:
- 左侧的标签,Anchor 设置为 Left|Right|Top|Bottom
- 右侧的图片框,Anchor 设置为 Right|Top|Bottom。
我希望图片框保持连接到控件的右侧,它在设计器中执行。然而,当我实际运行我的程序时,如果我使控件的宽度超过大约 100 像素,图片框似乎会从控件的右侧浮动,而在 150 像素时,图片框(即 20x20)是完全不可见的!
我没有任何代码在运行时调整图片框的锚样式,那么这怎么会发生,我该如何解决呢?
我通过将父控件中的 AutoScaleMode 属性设置为 None 解决了这个问题。
实际上,使用 Dock 代替 Anchor 似乎解决了我的问题!我将图片框设置为停靠右侧,将标签设置为停靠填充,现在看起来正确!
我可以建议您使用具有相同值的 Anchor 属性,而不是 Dock 属性。
我认为仅使用 Anchors 而不是设置 Docks 可能会有所帮助:
如果您打算将 PictureBox 仅附加到控件的右侧 - 使用 Anchor 属性设置为 Right | 顶部(但它可以覆盖左侧的标签,以防控制宽度太小)
如果您打算在垂直调整控件大小时拉伸 PictureBox,则设置 Anchor = Right | 顶部 | 底部。
如果您希望 PictureBox 在容器控件调整大小时垂直和水平拉伸,请设置所有锚点(在这种情况下,标签不会被 PictureBox 覆盖)
Labels Anchor 最好设置为 Left | 顶部,因为将其锚定到左侧 | 是的,最近可能在使用不同的 TextAlign 值的情况下,在调整大小时会导致控件中的文本移位