C# 如何防止WinForm控件拉伸并保持固定大小

C# 如何防止WinForm控件拉伸并保持固定大小,c#,.net,winforms,C#,.net,Winforms,我正在开发一个用C#编写的.NET3.5桌面应用程序。它的复杂UI是动态填充的。它的一部分是以下分组框,它包含在FlowLayoutPanel中,FlowLayoutPanel包含在UserControl中。屏幕截图取自设计视图: 启动应用程序时,所有控件都会拉伸: 甚至在调用UserControl的Load事件时,我也在固定每个UserControl大小的宽度。组框内所有控件的AutoSize属性为false 为什么会发生这种情况以及如何防止这种情况?我希望UI看起来与设计视图一模一样 编

我正在开发一个用C#编写的.NET3.5桌面应用程序。它的复杂UI是动态填充的。它的一部分是以下分组框,它包含在FlowLayoutPanel中,FlowLayoutPanel包含在UserControl中。屏幕截图取自设计视图:

启动应用程序时,所有控件都会拉伸:

甚至在调用UserControl的
Load
事件时,我也在固定每个UserControl大小的宽度。组框内所有控件的
AutoSize
属性为false

为什么会发生这种情况以及如何防止这种情况?我希望UI看起来与设计视图一模一样

编辑


最好的答案并没有解决我的问题。首先,将边框样式设置为
FixedX
会创建不需要的边框。其次,内部控件仍在扩展,它们被边框剪裁。

将FlowLayoutPanel的WrapContents属性设置为true


请通知我此操作是否有效

检查
在应用程序级别设置的EnableVisualStyles
属性值。将其设置为
true
并检查。

您可以在
锚定属性中播放

  • 如果您想保持标签在设计=>时的位置,请使用组合:Top,Left
  • 如果要水平拉伸控件=>请使用组合:Top、Left、Right
  • 如果要保持控件在所有方向拉伸控件=>请使用组合:顶部、左侧、右侧和底部
  • 如果要将控件保持在右下角位置(通常用于按钮)=>请使用组合:Bottom,right
  • 你可能会读到更多关于Anchor和


    希望这将有助于您

    为所有子级用户控件创建自动缩放模式“继承”

    如果您的按钮在放大其容器对象时变宽,则该按钮必须固定在容器的左右边框上。只需将其锚定到顶部或底部,而不是左侧或右侧边界。
    相反,如果按钮越来越高,不要将其固定在顶部或底部。

    如果不希望控件流动,为什么要使用“流动布局”面板?表格布局面板不是更合适吗?甚至只是一个带有锚的普通面板?我需要flow layout面板,因为在这个组框顶部的flow layout面板中还有另一个面板。需要根据用户输入隐藏该面板。当这种情况发生时,我需要将面板下方的所有控件向上移动。可能的副本不是副本。用户没有调整窗口的大小。对于我的情况,控件会自动拉伸!因此,您将表面板放在流面板的内部。这就是布局面板的全部要点。此外,当用户没有调整窗体大小时,您很可能正在调整用户控件的大小。为什么表布局面板会在我需要流布局面板时修复此问题?所有控件及其父控件的锚都设置为左上方。但是它们会被拉伸……请确保VisualStudio没有在usercontrol.designer.cs中为usercontrol设置usercontrol autoscalemode为.font。