Помогите пожалуйста элегантно решить пару проблем в моем небольшом проекте. Я разрабатываю небольшую программу на C # (WinForms), которая использует картинки вместо кнопок. Я добавил к ним небольшую функцию, такую как «анимация»: при наведении на них мышки они уменьшаются в размере, а когда мышь исчезает, они возвращаются в исходное состояние. На самом деле у меня есть две проблемы:
- Если мышь подвести к самому краю, изображение будет уменьшено, но если размер мыши не соответствует текущему размеру окна изображения, его размер будет возвращен обратно. И так далее. Такое «мерцание» получается.
- И что еще более важно, у меня есть подсказки, прикрепленные к этим картинкам. И если вы наведете указатель мыши на графический блок, он уменьшится в размере, и всплывающая подсказка не будет вызвана. Потребуется немного переместить курсор, не выходя за пределы рамки для отображения всплывающей подсказки. И это поведение нелогично.
Вот код:
private void IconReduce(PictureBox picturebox)
{
originalLocation = picturebox.Location;
originalSize = picturebox.Size;
picturebox.Location = new Point(picturebox.Location.X + 2, picturebox.Location.Y + 2);
picturebox.Size = new Size(picturebox.Size.Width - 4, picturebox.Size.Height - 4);
}
private void IconNormal(PictureBox picturebox)
{
picturebox.Location = new Point(originalLocation.X, originalLocation.Y);
picturebox.Size = new Size(originalSize.Width, originalSize.Height);
}
private void pb_MouseEnter(object sender, EventArgs e)
{
IconReduce(sender as PictureBox);
}
private void pb_MouseLeave(object sender, EventArgs e)
{
IconNormal(sender as PictureBox);
}