WPF 改变按钮(或Image)大小(Animation)

gunag 2009-10-24 07:46:20
背景:想实现一个动态导航栏

有3个或3个以上的Button(或Image),初始状态其中一个Button比较大,当鼠标移动到另一个Button上时,大的按钮变小,鼠标
移动到(MouseEnter)的按钮变大(这种变大的状态在鼠标离开时(MouseLeave)要保持住,直到鼠标移动到其他按钮上时才能缩小)。
谢谢大家了。

...全文
334 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gunag 2009-10-25
  • 打赏
  • 举报
回复
谢谢ICanUseThisID,这种思路非常好。我试一下。
ICanUseThisID 2009-10-25
  • 打赏
  • 举报
回复

//那么这样
private Button previousButton = null;

private void button1_MouseEnter(object sender, MouseEventArgs e)
{
(sender as Button).Width += 20;

if (previousButton != null)
{
previousButton.Width -= 20;
}
}

private void button1_MouseLeave(object sender, MouseEventArgs e)
{
previousButton = sender as Button;
}
gunag 2009-10-25
  • 打赏
  • 举报
回复
谢谢ICanUseThisID的回答。

我的情况是在MouseEnter时,我要控制的Button不是当前鼠标移动上的Button,而是上一次MouseEnter的对像。
ICanUseThisID 2009-10-25
  • 打赏
  • 举报
回复

//参考
//将所有相关的button的MouseEnter和MouseLeave事件绑定到如下两个事件处理函数
private void button_MouseEnter(object sender, MouseEventArgs e)
{
(sender as Button).Width += 20;
}

private void button_MouseLeave(object sender, MouseEventArgs e)
{
(sender as Button).Width -= 20;
}
yankunlin 2009-10-25
  • 打赏
  • 举报
回复
学习了
gunag 2009-10-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lovelan1748 的回复:]
判断鼠标位置是否在button的区域内,对button设置大小就可以了,应该没有难度
button.bound.cantains(x,y)
[/Quote]
谢谢lovelan1748的回答,

不过我我觉的难点是不能确定哪一个Button变大了.不确定上一个MouseEnter事件是对哪个Button操作的,在下一个MouseEnter时我要对那个Button做变小操作。
lovelan1748 2009-10-25
  • 打赏
  • 举报
回复
判断鼠标位置是否在button的区域内,对button设置大小就可以了,应该没有难度
button.bound.cantains(x,y)
在Windows系统中,notepad.exe(记事本)是一个“经典的”、“简洁的”文本编辑器。这个软件,没有华丽的外观,也没有繁杂的功能,仅仅是一个文本编辑小软件。虽然经过Windows系统数十年的变换,但它却保持着永恒姿态,数十年来几乎不曾改变过。曾经,VS中的经典DEMO中,就有它的身影,一个新建的项目,就藏有一个新建的“记事本”。然而,在WPF的项目中,“记事本”却消失的无影无踪,也许是很容易实现,也许是为了革新,而不愿再传承“经典”。确实,使用WPF技术再次让“记事本”复活,确实也是一件非常容易的事情。但是,如果,使用WPF技术,再搭配当下非常流行的MVVM模式呢?复活“记事本”的难度却陡然上升至很多WPF程序员为之默默叹气。而,MVVM模式是掌握WPF的最顶级技术,MVVM模式拥有的无尽的优势,让WPF相对于过往的编程模式来说,是一种革命性的创新,从而也成为大中型WPF项目中必须的模式。但,学习难度。。。。。。在这个《WPF记事本开发详解》的课程中,赵老师带领你在WPF中,从零开始一步步构建MVVM模式,直到让你亲自以WPF+MVVM的方式,让这个经典的“记事本”软件从你的手中“复活”。在课程中,赵老师会详细讲解WPF和MVVM中的各种技巧,让你从此爱上WPF+MVVM编程。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧