使用Visual Studio 2008,Windows窗体,C#,.NET 2.0 ......
是否有一种无代码的方法来获得一个控件(在我的情况下恰好是一个PictureBox),以便在调整窗口大小时保持居中?换句话说,使用属性设置的某种组合而不是手动编写代码以保持元素居中.
例如,在窗体窗口中央有一个按钮,当用户调整窗口大小时,按钮将根据其默认锚定(顶部,左侧)保持固定.我想要它做的是保持居中,无论窗口如何调整大小.
我知道我可以观察一个窗口调整大小事件,然后让表单上的所有元素重新定位,以保持在相同的相对位置(根据我写的代码让他们这样做).我希望有一些属性设置的组合来实现相同的效果.
正如在其他帖子中所建议的那样,我已经尝试过使用TableLayout控件,但是在针对元素居中的特定解决方案方面可以使用正确方向.
您好我正在尝试在窗体的中心设置控件(即标签或文本框).我需要这个,而我最大化这种形式.我可以静态还是动态设置它.任何人都有一个想法,请尽快告诉我...
我试图创建一个带有边框的自定义面板,其颜色可以更改,以便在某些条件下"突出显示"面板.
小组还需要通过案文传达某些信息.为此,我在Panel中添加了一个Label.我已尝试使用规定的方法对Label进行居中,但出于某种原因,它始终将其放在Panel的左上角.我无法将Label的Dock设置为Fill,因为它掩盖了已创建的自定义边框.所以我需要做到这一点,以便Label适合边框.
Label的Anchor设置为None,其位置为
new Point((ClientSize.Width - Size.Width)/2, (ClientSize.Height - Size.Height)/2);
Run Code Online (Sandbox Code Playgroud)
自定义Panel的代码是:
public class CustomPanel : Panel
{
public CustomPanel(int borderThickness, Color borderColor) : base()
{
SetStyle(ControlStyles.AllPaintingInWmPaint |
ControlStyles.UserPaint |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.ResizeRedraw, true);
BackColor = SystemColors.ActiveCaption;
BorderStyle = BorderStyle.FixedSingle;
Size = new Size(45, 45);
Margin = new Padding(0);
BorderThickness = borderThickness;
BorderColor = borderColor;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (BorderStyle == BorderStyle.FixedSingle)
{
int halfThickness = BorderThickness / 2;
using (Pen p = new Pen(BorderColor, BorderThickness)) …Run Code Online (Sandbox Code Playgroud) 我有一个相当简单的用户控件,代表一个基本的登录控件.所以它有几个标签,文本框和一个按钮.我希望这个用户控件来填充它的容器,所以我将其dock模式设置为fill.到目前为止很容易.
现在,我希望用户控件中的所有控件都可以根据呈现时用户控件的大小来居中.我想不出一个可以解决问题的锚/码头组合.
用户控件具有ReSize事件.所以我知道我可以根据用户控件在该事件期间的大小来计算和移动控件.但我希望这个问题很常见,如果我愿意,可以通过设计师处理.
我有一个TableLayoutPanel占据整个区域,码头填充.我创建了一个3乘3的表/网格.我想设置中间单元格的高度和宽度,然后让其他所有内容都自动调整大小.这样,中间单元格中的内容位于容器的中心.
看起来我正在以错误的方式解决这个问题.在容器(面板)中居中内容的最佳方法是什么?