有没有办法在c#中缩放按钮?
我用几个按钮创建了windows窗体。现在我希望当光标指向每个按钮时,按钮弹出或缩放,当光标从该按钮上移除时,它将以正常大小出现。您可以在鼠标输入事件中通过代码更改按钮大小。并在鼠标离开事件中重置它。YAU可以更改鼠标进入和离开事件时按钮的大小,或者创建两个图像,一个图像有没有办法在c#中缩放按钮?,c#,button,resize,C#,Button,Resize,我用几个按钮创建了windows窗体。现在我希望当光标指向每个按钮时,按钮弹出或缩放,当光标从该按钮上移除时,它将以正常大小出现。您可以在鼠标输入事件中通过代码更改按钮大小。并在鼠标离开事件中重置它。YAU可以更改鼠标进入和离开事件时按钮的大小,或者创建两个图像,一个图像 是小的和其他大的,并更改这些事件的图像。可能与此类似: Button.MouseEnter += new EventHandler(delegate(object Sender, EventArgs e) { Button.S
是小的和其他大的,并更改这些事件的图像。可能与此类似:
Button.MouseEnter += new EventHandler(delegate(object Sender, EventArgs e) { Button.Size = new Size(Button.Size.Width + 50, Button.Size.Height + 50); } Button.Location = new Point(Button.Location.X - (50 / 2), Button.Location.Y - (50 / 2)});
Button.MouseLeave += new EventHandler(delegate(object Sender, EventArgs e) { Button.Size = new Size(Button.Size.Width - 50, Button.Size.Height - 50 }; Button.Location = new Point(Button.Location.X + (50 / 2), Button.Location.Y + (50 / 2)});
Button.GotFocus += new EventHandler(delegate(object Sender, EventArgs e) { Button.Size = new Size(Button.Size.Width + 50, Button.Size.Height + 50); } Button.Location = new Point(Button.Location.X - (50 / 2), Button.Location.Y - (50 / 2)});
Button.LostFocus += new EventHandler(delegate(object Sender, EventArgs e) { Button.Size = new Size(Button.Size.Width - 50, Button.Size.Height - 50 }; Button.Location = new Point(Button.Location.X + (50 / 2), Button.Location.Y + (50 / 2)});
您还可以循环“This.controls”事件,定义每个按钮,然后添加此事件。这是脚本,您几乎可以做任何事情=)您必须同时处理MouseEnter/MouseLeave和GotFocus/LostFocus事件才能进行键盘导航
在WPF应用程序中,这样的效果要容易得多。也许你应该考虑创建一个WPF应用程序,如果你需要视觉效果。通过缩放按钮,以一种可以附加到您想要的任何按钮上的方式,检查类似需求在何处得到处理,避免编写代码。最简单的方法似乎是使用
SetBounds
Control.Scale
不起作用,因为它假定您缩放一个包含所有子控件的完整窗口,因此将始终从视口的左上角(在本例中为窗口客户端框架)进行缩放
我认为win form不支持这种图形效果。试试WPF.daviooo哦,它可能没有WPF中的优雅,但在Windows窗体中也可以轻松做到。@Joey我不是WPF方面的专家,但我知道它有一些类似这样的图形效果功能。。。WinForm是非常“基本”的,所以您可以使用变通方法来获得缩放效果。。。我错了吗?不仅是尺寸,还有位置(如果你不想从左上角放大)。如果按钮被锚定或位于布局面板中,可能会变得更复杂。如果将宽度增加20,则必须将控件的x位置更改为当前值-10。同样的,你必须做的高度和y-位置看看我下面的帖子。我用一些代码给出了一个例子。怎么做?你能解释一下吗?这是它应该工作的方式。但是要小心。如果选择较大的缩放值,则缩放的控件可能与另一个控件重叠。
Button b;
public Form1()
{
InitializeComponent();
b = new Button();
b.Text = "Hover me";
b.Top = 100;
b.Left = 100;
b.Size = new Size(80, 30);
this.Controls.Add(b);
b.MouseEnter += delegate(object sender, EventArgs e)
{
b.SetBounds(b.Left - 5, b.Top - 2, b.Width + 10, b.Height + 4);
};
b.MouseLeave += delegate(object sender, EventArgs e)
{
b.SetBounds(b.Left + 5, b.Top + 2, b.Width - 10, b.Height - 4);
};
}