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

windows phone 7 31天学习笔记 21:Silverlight工具包

[复制链接]

尚未签到

发表于 2015-5-13 12:38:48 | 显示全部楼层 |阅读模式
  原文地址:http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-21-Silverlight-Toolkit-for-Windows-Phone.aspx
  本文主要讨论Silverlight工具包。
  什么是工具包?
  原始的Silverlight工具包是在程序包需要的额外的一堆东西。控件从图表到自动完成都包含。这些都是很神奇的东西。
  同样的wp7的Silverlight工具包想法和上边移植,但是不仅仅这些,他还包含额外的东西:
  
       
  • ConentMenu   
  • DatePicker&TimePicker   
  • GestureListener   
  • ToggleSwitch   
  • WrapPanel
  我将会花费本文的剩下的部分来讨论如何使用这些控件。有一堆的控件,我只会使用部分来进行讨论。
  ContextMenu控件
  如果你有机会将一些东西固定到开始页面,我觉得ContextMenu能偶将这个功能实现。下面是实现的图片:
DSC0000.png
  为了让菜单出现,我们需要像以前那样添加对于Silverlight的引用。
DSC0001.png
  添加完以后,我们需要添加命名空间到XAML文件中,你需要添加标签到页面头部:
  
   xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
  现在回到正题上,让我们提供一个普通控件的更多属性。如果我们有一个形状、图像或是其他,我们的用户需要进行交互。也许你需要的不只是一个矩形,通过添加一个ContextMenu到矩形上,我们能够在用户点击以后弹出一个菜单。这可以是任何XAML元素,甚至是全景视图的背景图片或是一个按钮。












  我们已经绑定了ContextMenuService,并且添加了ContextMenu到我们的特定控件中。你可以看到每一元素都是具有Click事件,他允许我们将这些按钮选型反馈到代码中。
DSC0002.png
  如果你在模拟器中进行测试,你也许同样注意到背景在放回后变大了一点,这些将菜单逮到了前部正中来引起用户注意。你也许想要这种行为,所以选项有IsZoomEnabled这个属性。将它设置为false将会停止放大效果。
  这添加一个类似右键菜单的东西是很简单的,这将会是最有用的六个组件之一。
  DatePicker和TimePicker控件
  当我准备这一部分代码的时候,我面临两个有趣的挑战。这太过直白以至于我自己都不知道为什么错了。解决它需要一点魔法。我将会讨论它,首先,添加这两个控件到我们的页面中:





  添加完以后就可以工作,他们允许用户选择时间。
DSC0003.png DSC0004.png
  现在讨论先前说到的问题。你将会注意到,有一个程序栏,他包含两个按钮。在点击以后,我意识到他们是完成和取消按钮,他们覆盖住了字符。
  为了让按钮正常工作,你需要这样做:
  1工程根目录下创建一个文件夹,命名为“Toolkit.Content”
  2 添加两张图片到其中,命名为:
  1 ApplicationBar.Cancel.png
  2 ApplicationBar.Check.png
  3 确保将这些内容在编译前设置为“Content”,如下图:

DSC0005.png   完成以后就能正常工作了:
DSC0006.png DSC0007.png
  GestureListener控件
  知道现在你也许好奇如何处理用户手势。本文将会给出答案。
  好了,开始讨论GestureListener.想ContextMenu一样,我们将会让GestureService知道我们创建了一个GestureListener,然后对于特定的动作出发特定的操作。记住,我们将其应用到xaml元素中,这样手势将会被所应用的控件所识别。下面是使用的手势类型:


  • Tap
  • DoubleTap
  • Hold
  • Flick
  • Pinch
  • Drag and Drop
  这些都是相同的使用方式,并且也特别容易实现。Pinch和Drag有点技术难度。下面是代码:








  正如你所见,我可以定义自己想要识别的手势,然后给他们赋予处理事件。
  ToggleSwitch控件
  正如你所见到的,他可以更改设置:
DSC0008.png
  这很简单:




  上边的截图中,说到的“24小时时钟”,我的例子将会读作“自动接收更
  新”。开启/关闭是自动的。如果你想自定义更多控件,这将会很简单。有一个HeadTemplate和一个ContentTemplate这些允许我们让控件成为自己独有的。在滑动以后将会触发开启或是关闭事件。





















  最后,我们拥有了WarpPenel。他的意图很明显,非正式的控件。
  WrapPanel控件
  一个WrapPenel是一个具备额外设置的StackPanel。我创建一个游戏前些时候,然后我想创建一个有30个按钮的屏幕。既然这些之前通过WrapPanel可以实现,我需要动态创建一个Grid,然后给每一个添加到Grid中。比我想的要简单,只需要把30个按钮放到5x6的框架中。WrapPanel帮我解决了这个问题。

















  如下的截图,我们可以看到WrapPanel动态决定了每一个的大小,并且将最后一个放到了下一行。不需要讨论更多关于如何保持正确显示。
DSC0009.png
  我的代码中,你将会看到两个按钮。他们的尺寸自动缩放,写一个例子试试:
DSC00010.png

运维网声明 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-66610-1-1.html 上篇帖子: Windows 7运行软件乱码的解决方法 下篇帖子: Windows 7下VC6打开文件报错导致其崩溃的解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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