放大面板c#
问题描述:
我为公墓创建一个小地图,我想放大和缩小地图。所以我的想法是调整面板上所有按钮的内容。 我的代码是在这里:放大面板c#
foreach (Control btn in this.panel3.Controls)
{
if ((btn) is Button)
{
btn.Width += 10;
btn.Height += 10;
}
}
是否有任何其他方式做到这一点?我不满意,因为它看起来不像放大或更像放大的方式。预先感谢。
答
仅适用于您的代码分开放大按钮。你可能需要的是弹力整个区域的按钮。像这样的东西(我没有测试):
foreach (Button btn in panel3.Controls.Where(c => c is Button).Cast<Button>())
{
const double zoom = 1.1;
//increase position
btn.Left = Convert.ToInt32(btn.Left * zoom);
btn.Top = Convert.ToInt32(btn.Top * zoom);
//increase size
btn.Width = Convert.ToInt32(btn.Width * zoom);
btn.Height = Convert.ToInt32(btn.Height * zoom);
}
+1
此外,这不会放大字体大小,您可能必须手动执行此操作。 – florien
答
您可以使用Panel
的Scale
方法来放大和缩小面板的内容。
private void buttonZoomIn_Click(object sender, EventArgs e)
{
cemetaryPanel.Scale(new SizeF(1.1f, 1.1f));
}
private void buttonZoomOut_Click(object sender, EventArgs e)
{
cemetaryPanel.Scale(new SizeF(0.9f, 0.9f));
}
尝试使用'ScaleTransform' –
您是否需要使用WinForms?缩放/旋转表单对于WPF效果更好。 – NineBerry
@NineBerry我需要使用WinForms。 –