最近需要用Silverlight实现一个类似Web的悬浮菜单,在网上没有找到需要的资源,本来准备自己实现一个,恰巧看到中国人寿的Silverlight平台上的菜单与自已的想法大致吻合,于是决定参考其做法.
因为中国人寿的Silverlight项目采用了动态加载的方式,在html页面无法直接找到xap地址,要先用Spy找到它的xap包, 通过视觉树的方式,找到VerticalMenu,这样就可以快速定位到该控件所使用的dll了
反编译出dll后,分析一下代码,发现和自己预想采用TranslateTransform的思路是一致的, 具体做法通过MouseEnter/MouseLeave事件控制容器StankPanel的相对坐标.
但是由于它在控件逻辑中将样式写死,无法直接使用, 所以自己将反编译的代码改动了下,可以进行样式设置.具体的代码就不贴了,熟悉Silverlight自定义控件做法的人很快就能看明白.将其发布出来,供需要的朋友参考下,或许会有帮助.不过示例没有采用MVVM的方式去做,同时希望感兴趣的朋友时间充裕的前提下,能对其进一步扩展,使其支持其它三个方向的悬浮.