C# 缩放时,水平滚动条和标签向上移动的幅度超过其应向上移动的幅度

C# 缩放时,水平滚动条和标签向上移动的幅度超过其应向上移动的幅度,c#,winforms,C#,Winforms,我有一个表单,其中有一个水平滚动条,在它下面的底部有一个标签。我在这里应用了缩放实用程序,即每当我按下缩放按钮时,标签的大小就会增加1.1倍,以此类推。水平滚动条的大小保持不变,但其位置根据缩放的标签而变化,也就是说,随着标签根据缩放而扩展或收缩,水平滚动条会不断移动。滚动条上贴着标签 现在我面临的问题是,当我缩放时,缩放会正常进行,但标签的位置会异常变化。它在缩放时向上移动,但移动太多。底部和标签之间的距离远大于水平滚动条和标签之间的距离 我正在使用此代码设置表单上标签的位置: label.L

我有一个表单,其中有一个水平滚动条,在它下面的底部有一个标签。我在这里应用了缩放实用程序,即每当我按下缩放按钮时,标签的大小就会增加1.1倍,以此类推。水平滚动条的大小保持不变,但其位置根据缩放的标签而变化,也就是说,随着标签根据缩放而扩展或收缩,水平滚动条会不断移动。滚动条上贴着标签

现在我面临的问题是,当我缩放时,缩放会正常进行,但标签的位置会异常变化。它在缩放时向上移动,但移动太多。底部和标签之间的距离远大于水平滚动条和标签之间的距离

我正在使用此代码设置表单上标签的位置:

label.Location = new Point(label.Location.X, this.Height - label.Size.Height);

如何均匀缩放标签,使标签上下缩放的距离均匀相等?水平滚动条移动得很好,卡在标签上面。

听起来好像你需要考虑滚动容器的AutoSooLoad属性。在重置标签位置之前,可能需要将其重置为(0,0)。滚动时,可视客户端区域的左上角被视为原点,而不是未滚动容器的“真”左上角

例如:

container.AutoScrollPosition = new Point( 0, 0 );
label.Location = new Point( 0, 0 );
如果看不到更多的代码(因此我可以尝试),很难说,但是您需要考虑当前的缩放级别。你能发布最小的工作代码,或者代码的链接吗?