我让用户控制的范围越宽,右边被截断的范围就越多

本文关键字:范围 右边 用户 控制 | 更新日期: 2023-09-27 18:17:48

我有一个包含2个子控件的用户控件:

  • 左侧的标签,锚设置为左|右|顶|底
  • 右边的图片框,锚点设置为右|上|下。

我希望图片框保持连接到控件的右侧,这在设计器中是这样做的。然而,当我实际运行我的程序时,如果我使控件宽度超过100像素,那么图片框似乎会从控件的右侧浮动,并且在150像素时,图片框(这是20x20)是完全看不见的!

我没有任何代码在运行时调整图片框的锚样式,所以这是怎么发生的,我怎么能修复它?

我让用户控制的范围越宽,右边被截断的范围就越多

我通过将父控件中的AutoScaleMode属性设置为None来解决这个问题。

实际上,使用Dock代替锚似乎已经解决了我的问题!我将图片框设置为dock right,将标签设置为dock fill,现在看起来似乎是正确的!

我建议您使用锚属性,而不是Dock属性,具有相同的值

我认为只是使用锚而不是设置码头可能会有所帮助:

如果你想让PictureBox只附着在控件的右侧-使用锚属性设置为右|顶部(但它可以覆盖标签在左边的情况下,当控件宽度将很小)

如果你想在控件垂直调整大小时拉伸PictureBox,那么设置Anchor = Right | Top | Bottom。

如果你想让PictureBox在容器控件调整大小时垂直和水平拉伸设置所有锚(在这种情况下标签不会被PictureBox覆盖)

label Anchor最好设置为Left | Top,因为将其锚定为Left | Right可能会导致在调整

大小时文本在整个控件上发生移位,如果使用不同的TextAlign值