【问题标题】:PictureBox anchor not working properlyPictureBox 锚无法正常工作
【发布时间】:2016-04-13 03:32:48
【问题描述】:

在我的表单上,我有一个 Panel 控件,其中包含一个 PictureBox 控件和一个 Label 控件。

面板在上图中不可见,但基本上是这两个控件周围的区域。

我已将所有这三个控件的 Anchor 属性设置为 Top, Bottom, Left, Right,以便它们遵循其父容器的大小调整行为。

标签控件 (postbagfolderempty) 工作正常,但 PictureBox (EMPTY!) 似乎没有从其原始位置移动。

我需要设置其他属性吗?

更新:我将 PictureBox 的 AutoSize 属性更改为 None。它已经开始移动,但是当我尝试放大我的表格时,它开始沉入一个白色区域(下图)。

【问题讨论】:

  • 你想达到什么目的?
  • @IvanStoev 我希望我的PictureBox 的行为与我的Label 完全相同,它们具有相同的 Anchor 值,但它们的行为方式不同。
  • 我不知道你的标签在做什么,那么,你到底想达到什么目的?例如居中等。注意默认标签是AutoSize,而PictureBox不是,这会影响行为。所以,第三次,你真正想要实现的是什么:)
  • @IvanStoev 我想在用户调整表单大小时集中它们。这就是我想要实现的目标。
  • @Disasterkid 锚定会修改大小,而不仅仅是位置。如果您希望它们居中并随表格缩放,锚定是正确的解决方案,如果您只希望它们居中,那么不锚定实际上是正确的解决方案:将您的锚设置为None

标签: c# winforms picturebox


【解决方案1】:

确保您的PictureBox 没有将SizeMode 设置为AutoSize

锚定会改变大小,如果它是自动调整大小的,它不会改变任何东西

另外,100% 确保您的 PictureBox 实际上是面板的子级。很容易检查:在设计器上选择它并按Esc,它应该选择面板。

更新

根据 cmets,问题似乎在于您要锚定到所有侧面(从而产生控件的缩放)。

如果您想要一个随表单缩放的面板,以及面板内居中但不沿缩放的控件,则将该面板锚定到所有边,将控件放置在设计器中居中的面板内,并设置它们的锚点到None,这样它们就不会缩放,而且由于它们没有锚定,它们会在面板缩放时移动(但它们不会随它缩放,这似乎是你的目标)

【讨论】:

  • 我从您的回答中取得了一些进展。所以我的PictureBox 现在开始按原样移动。除非我让我的表格更大,它开始沉入一个白色区域。我用图像更新了问题。请看一看!
  • 我无法预见您是如何设置表单的。锚定到父控件,它工作得很好(我刚刚做了一个快速的项目来测试)。我不知道您的表单发生了什么,您是如何对其进行控制的,所以我无法真正帮助您,我只能“猜测”
  • 很高兴它成功了,但是下一次,请在问题中添加您想要实现的目标,其余的会更容易,所以我们不必猜测它......我可以立即做出了单行回答:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 2011-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多