C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十四)制作主角属性面板及加点器
2010-09-30 22:36:17 来源:WEB开发网游戏中会使用大量的菜单面板,而这些面板往往都带有选项卡。如果用Silverlight工具中的TabControl,则需要通过复杂的xaml重写模板来实现自定义样式,这一点时常让开发者头疼,毕竟界面的东西应该属于美工的范畴,这也是我所发现在目前Silverlight中唯一一处只能通过xaml而无法用代码实现的地方。当然,如果您对此特别感兴趣,同样可以到http://www.codeplex.com/Silverlight中下载最新的开源工具源码,其中的示例项目中有非常详细的模板重写案例。本节,我将通过创建用户控件的方式来创建自定义的TabControl和RepeatButton,实现主角属性面板及其中的属性加点器。
首先,我创建一个QXTabControl用户控件,该控件界面可以很简单,只需要包含一个头和一个身体即可:
<UserControl x:Class="QXGameEngine.Control.QXTabControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas>
<StackPanel x:Name="Head"/>
<ContentPresenter x:Name="Body"/>
</Canvas>
</UserControl>
Head 用做TabItem的容器,作为StackPanel类型控件,它可以对内部控件进行横排或竖排,从而基本满足大多数情况需要;而Body是ContentPresenter类型,在第四十二节中我曾提及过它,相当于一个万用变身控件,将它作为选项卡的身体部分再合适不过了。当我们点击不同的选项卡时,将不同的面板控件作为值赋予给Body,轻松实现高度自由的选项内容变换。
那么用什么控件来替代TabItem呢?在《剑侠世界》中,选项卡做得别具特色,不光在默认情况下鼠标进入与离开会呈现不同的图片;当被点中后,同样实现另外的两张图片间的切换。这样的效果相当精致,而我们又该如何将它实现呢?此时,不得不想到我们可爱的QXIcon控件,我为它添加了新的类型:IconTypes.HitModes,定义很简单,根据该控件是否被点击从而对4张图片进行相应切换:
Tags:开发 WPF Silverlight
编辑录入:爽爽 [复制链接] [打 印]- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››WPF学习笔记12. Binding (5)
- ››WPF学习笔记11. Binding (4)
- ››WPF学习笔记10. Binding (3)
- ››WPF学习笔记9. Binding (2)
- ››WPF学习笔记8. Binding
- ››WPF学习笔记7. Resource
- ››WPF学习笔记6. RoutedEvent
- ››WPF学习笔记5. DependencyProperty
- ››WPF学习笔记3. Navigation
- ››WPF学习笔记之2. Dispatcher
- ››WPF学习笔记之1. Application
更多精彩
赞助商链接