C# 单击控件时无法显示涟漪效应
我试图显示我的涟漪效应时,控制点,但它不工作。我认为这是某种无限循环,但我找不到bug。以下是我在OnMouseClick中的代码:C# 单击控件时无法显示涟漪效应,c#,infinite-loop,C#,Infinite Loop,我试图显示我的涟漪效应时,控制点,但它不工作。我认为这是某种无限循环,但我找不到bug。以下是我在OnMouseClick中的代码: protected override void OnMouseClick(MouseEventArgs e) { base.OnMouseClick(e); xx = MousePosition.X; yy = MousePosition.Y; allow = true;
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
xx = MousePosition.X;
yy = MousePosition.Y;
allow = true;
while (allow)
{
Invalidate();
}
}
这是我在OnPaint中的代码:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var G = e.Graphics;
G.DrawString(Text, Font, new SolidBrush(ForeColor), R, SF);
if (SizeAnimation > 190) allow = false;
if (allow)
{
SizeAnimation = SizeAnimation + 25;
G.FillEllipse(new SolidBrush(Color.FromArgb(198, 180, 232)), xx, yy, SizeAnimation, SizeAnimation);
G.DrawString(Text, Font, new SolidBrush(ForeColor), R, SF);
}
}
控件的大小分别为145和45。
有人能给我解释一下错误并修复它吗?非常感谢:D
OnPaint
在鼠标单击返回之前无法运行。你不能把你的while循环放在那里。你需要重新设计你的逻辑。有更好的方法,在WPF中实现它非常简单,而且是内置的