C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十四)制作主角属性面板及加点器
2010-09-30 22:36:17 来源:WEB开发网运行时效果:
查看原图(大图)
很棒吧?嘿嘿。在角色属性面板里除了显示角色的属性值等个人资料外,还有装备管理及属性加点器两个重要部分。关于装备,后面的章节再细说。下面我向大家讲讲如何制作这个属性加点器。
如果不论样式,我们直接可以使用官方提供的NumericUpDown控件即可,该控件非常强大,看了它的源码,其本身为一个组合控件,由4大部分组成:文本(TextBlock)、文本容器(ContentPresenter)、加按钮(RepeatButton)及减按钮(RepeatButton),且模式很多,你能想到的基本都有。当然同样的,要重写它的样式实在是麻烦之事,其实该控件的重点就就在RepeatButton上,如何实现这个Repeat动作又是关键中的关键。我们不妨从它的原理出发,当鼠标在此按钮上按下时开始计时,如果鼠标一直未放开,则当到达预先设定的Delay时间间隔后即触发后面的连续重复动作,且这些动作以Interval为间隔不断重复下去直到鼠标左键被放开或鼠标离开该控件。此时,我又想到了美丽的QXIcon,再次为它添加一种新模式:IconTypes.RepeatButton:
case IconTypes.RepeatButton:
DispatcherTimer timer = new DispatcherTimer();
timer.Tick += (s, e) => { timer.Interval = TimeSpan.FromMilliseconds(Interval); RepeatClick(this, e); };
this.MouseEnter += (s, e) => { Container.Background = NewSource; };
this.MouseLeave += (s, e) => { Container.Background = _BodySource; timer.Stop(); };
this.MouseLeftButtonDown += (s, e) => { timer.Interval = TimeSpan.FromMilliseconds(Delay); timer.Start(); };
this.MouseLeftButtonUp += (s, e) => { timer.Stop(); e.Handled = true; };
break;
Tags:开发 WPF Silverlight
编辑录入:爽爽 [复制链接] [打 印]- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››WPF学习笔记12. Binding (5)
- ››WPF学习笔记11. Binding (4)
- ››WPF学习笔记10. Binding (3)
- ››WPF学习笔记9. Binding (2)
- ››WPF学习笔记8. Binding
更多精彩
赞助商链接