设为首页 收藏本站
查看: 1086|回复: 0

(原创)Windows Phone 7开发随记---自定义按钮的实现

[复制链接]

尚未签到

发表于 2015-5-8 14:26:11 | 显示全部楼层 |阅读模式
  这段时间着手公司的windows phone7的开发项目,因为项目中许多地方都要用到不同风格式样的按钮,
  对phone7也大致研究了下,想要完美的制作精美的按钮,对expression blend也需要熟悉熟悉。在这里我们
  用到的首先是expression blend工具。用之前,先需要了解几个概念:
  自定义控件模板 -
ControlTemplate。ControlTemplate可以称为控件模板,简单的理解为控件结构和行为的集合。
  在项目设计中,经常会使用
ControlTemplate创建新的控件模板或者修改现成的控件模板,使用项目的UI具有独特性。
  如何使用Blend创建和修改
ControlTemplate既是制作自定义按钮的关键。
  首先用VS2010建立一个工程,命名为CustomButton,建好后如图所示:
DSC0000.png
  在Solution Explorer下的MainPage.xaml上点击鼠标右击,这时选择Open in expression blend..
DSC0001.png
  我们计划创建一个简单的按钮,现在从左边工具栏选中矩形框,在主设计窗口画一个矩形框,使用Radius修改矩形框边缘
  为圆形。该矩形框是为了Button的模板控件做基础使用的。
DSC0002.png
DSC0003.jpg
  然后在主设计窗口选中该矩形控件,点击鼠标右键,选中“Make Into Control..."选项,
DSC0004.png
  这时选择可见:
DSC0005.png
  保持默认的模板名字“ButtonStyle1”,点中“Control Type”中的Button选项,然后按“OK”。
  这样一个简单的ControlTemplate已经创建完了。我们打开Objects and Timeline看看当前控件模板组成信息,
  从下图我们可以看到,该Button模板,是由一个矩形控件和ContentPresenter组成的。
DSC0006.png
  这里模板默认的按钮颜色为白色,我们可以修改Rectangle的属性Brushes,以便在程序中动态的改变按钮的背景。
  在Brushes的Fill中。点击左键,选择Template Binding的Background,这样就把模板的背景绑定到按钮的Background上了。
  (如果不需要自己定义的一些图片作为背景,可以不用绑定,直接修改Brushes的颜色即可)
DSC0007.png
  但是这时还没完成,因为该模板没有任何的视觉效果和事件。也就是说,在这个控件模板中,缺少VSM状态信息。
  这里在Blend中的States菜单栏中,可以轻松的控制控件的VSM状态,下面,我们添加一些简单的状态效果。
  首先,选中新创建的Button控件,然后打开左边菜单栏States,如果没有发现该Tab,可以在Blend的Window菜单选中States就会出现了。
DSC0008.png
  在States菜单下,Normal状态为按钮正常时的样式,为了实现点钟按钮后,按钮有放大的效果,首先我们需要将Pressed状态下
  按钮变大,这里我们可以修改属性的Margin一栏,修改为Margin(-3,-3,-3,-3):
DSC0009.png
  其实通过修改VSM状态可以实现更为绚丽复杂的效果,但我们只选取点击按钮变大作为例子。
  保存,回到VS2010工程,在MainPage.xaml页面下,可以看到




1
2         
3            
4                 
5                     
6                        
7                             
8                                 
9                                    
10                                    
11                                    
12                                         
13                                             
14                                                
15                                                     
16                                                         -3
17                                                     
18                                                
19                                             
20                                         
21                                    
22                                    
23                                 
24                             
25                             
26                             
27                        
28                     
29                 
30            
31         
32     
  这个既是我们刚刚创建的按钮模板,在面的语句中添加Name="ButtonTest",以及背景图:
  



1  
2         
3            
4         

  修改如下:
  



1
2         
3            
4                 
5                     
6                     
7            
8         

  添加此图片到工程,
DSC00010.jpg
  命名为test.jpg,F5运行,效果如下:
DSC00011.png
  这样一个简单的自定义按钮就做好了,我们还可以通过VSM做成更为漂亮和满足用户需要的按钮,此例子只是给大家
  一个思路,教大家如何制作自己需要的按钮。此文还有很多不足之处,希望大家能指出。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-65037-1-1.html 上篇帖子: Windows phone 7之工具栏(ApplicationBar) 下篇帖子: Windows phone 7之页面导航
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表