我有一个包含不可见控件的UserControl,为了使它们可见,UserControl会调整大小。
我需要调整包含UserControl的Panel的大小,但我不知道如何。
答案 0 :(得分:6)
Panel和Form类很好地处理了这种行为,没有明确的大小调整(当用户有高DPI监视器或使用大型或超大字体设置时没有引入布局错误。
1)使用停靠的FlowLayoutPanel创建一个表单。
2)将Form和FlowLayoutPanel的AutoSize设置为true,将AutoSizeMode设置为GrowAndShrink
3)添加面板和内容。
4)以编程方式将所需面板的Visible属性设置为隐藏
hiddenPanel.Visible = false;
5)或者是真的
hiddenPanel.Visible = true;
答案 1 :(得分:2)
将此代码放在usercontrol中:
Size last = new Size(0, 0);
private void Me_Resize(object sender, System.EventArgs e)
{
if (last != new Size(0, 0)) {
this.Parent.Size = Size.Add(this.Parent.Size, Size.Subtract(this.Size, last));
}
last = this.Size;
}
还会保留边距(例如,如果面板大于您的用户控件或在您的用户控件旁边有其他控件。)
答案 2 :(得分:0)
如果您想将其调整为特定大小,可以在后面的代码中执行此操作:
Size panelSize = new Size(500, 500);
usercontrol1.Parent.Size = panelSize;
如果您想要调整大小,可以将此代码添加到usercontrol。
答案 3 :(得分:0)
要调整控件的大小,请调用控件的比例。
// To zoom in controls.
foreach (Control c in MyFlowLayoutPanel.Controls)
{
PictureBox ptc = c as PictureBox;
if (null != ptc)
{
Point pt = new Point(2, 2);
SizeF sf = new SizeF(pt);
c.Scale(sf);
}
}
//缩小控件。 foreach(在MyFlowLayoutPanel.Controls中控制c) { PictureBox ptc = c作为PictureBox;
if (null != ptc)
{
SizeF sf = new SizeF(0.5F, 0.5F);
c.Scale(sf);
}
}
答案 4 :(得分:0)
我知道这个主题很老了,但我想添加我的方法......
如果您有一个包含UserControl的Panel,您可以通过触发Form1_Resize事件轻松调整panel.Controls的大小。
let sequence = SKAction.sequence([movePlayerForward, movePlayerBack])
let player = SKSpriteNode(imageNamed: "player")
// start your action with repeating it forever
player.runAction(SKAction.repeatActionForever(sequence), withKey: "moveForwardBackward")
// stop your action after tapping
player.removeActionForKey("moveForwardBackward")
请确保正确锚定其内容。