我的Winforms MaterialSkin.2选项卡控件占用了大量内容空间

t9aqgxwy  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(457)

我有一个安装了MaterialSkin.2 nuget软件包的Winforms.Net Framework应用程序。问题是,我有很多选项卡,它们在设计器中使用了2行图标。但是在运行时,页面会按预期加载到左侧。虽然设计这些行会占用很多空间,但如果我想在底部有一个按钮,它并不完全在那里(下图),同样当我想让按钮在最右边的角落时,它们溢出了。我该如何解决这个问题呢?我通过Youtube Fox Learn频道学习了Winforms材料设计。我正在使用VS2022。
设计图像。我将TabControl停靠设置为填充。

运行时图像。正如你所看到的,右边的按钮已经溢出,底部的按钮没有完全向下。

krcsximq

krcsximq1#

控件的位置是相对于其父级的。控件需要知道当其父级客户端大小更改时要执行的操作。在不使用布局面板的简单设计中,控件的Anchor和/或Dock属性用于此操作。前者定义控件绑定到的容器的边缘。后者定义哪些控件边框 * 停靠 * 到其父控件。两者都告诉控件如何随其父控件调整大小。
第二个屏幕截图中的按钮保持在相同的位置,因为它们的锚属性被设置为默认值。AnchorStyles.Top | AnchorStyles.Left。这里发生的是TabControlClientSize在运行时被更改。因此,底部按钮下方的空间是标签区域在顶部对齐时的高度(设计时),右侧按钮的剪切大小是该区域左对齐时的宽度(运行时)。
若要执行您所设计的项目,请切换至[属性]视窗,并设定按钮的Anchor属性,如下所示:

Button1.Anchor = AnchorStyles.Top | AnchorStyles.Left; // The default.
Button2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
Button3.Anchor = AnchorStyles.Top | AnchorStyles.Right;
Button4.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;

相关问题