前我们讨论了系统主题以及如何通过鼠标使用Expression Blend来设置系统值。今天,我们来看看另一个可以用Expression Blend轻松实现的主题。如果你看到在各个地方比如YouTube(或我的个人网站,Blankensoft)展示过的应用程序后,你会发现它们基本都使用了一个漂亮的工具栏。

  Windows Phone 7工具栏是应用程序底部的一排圆形图标。下面是我制作的游戏TapScotch中的工具栏演示。

  

  可以从上例中看到我放置了4个用于与用户交互的图标。Play, Best Times, Badges和Help。在程序中任何时候点击任何其中任何一个都可以跳转到相应的页面去。那么,怎么来实现呢?

  添加工具栏

  如果你打开一个新项目,实际上在MainPage.xaml文件中有段被注释掉的代码。如果你删掉注释,工具栏的代码看起来就是这样:

<phone:PhoneApplicationPage.ApplicationBar>
<shell:Ap上海企业网站制作plicationBar IsVisible上海网站建设 style="color: #000000;">="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"/>
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2"/>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="MenuItem 1"/>
<shell:ApplicationBarMenuItem Text="MenuItem 2"/>
</shell:ApplicationBar.MenuItems>
</上海闵行企业网站设计与制作e="color: #000000;">shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

  如果你还删掉了页面头部的XML名称空间,即这些代码(确认你没有删除对这些程序集的引用):

  xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"

  xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"

  一旦你在程序中添加了工具栏,你就应该能看到Visual Studio很智能地将程序的DesignHeight属性调整了72个像素。那正是工具栏的高度。现在来说说系统托盘。

  Windows Phone系统托盘

  你可能已经注意到当你运行程序时,你可以看到时钟,WiFi信号强度,电池续航时间,等等。这是因为默认情况下,系统托盘是打开的。上海闵行企业网站制作如果你不关注那些信息(或者你正好需要那32个像素的空间),那你可以将它的IsVisible属性设置为false。

shell:SystemTray.IsVisible="False"

  在工具栏中添加图标

  如果你看过工具栏的代码,你可能会注意到它指向了两个当前不在你的项目中的图片。如果你运行程序,你会看到每个ApplicationBarIconButton都显示一个X图标。我们可以很简单地去为每个按钮创建几个图片,然后添加到项目中,再在那些代码中引用它们,对吗?当然。不过还有一个更简单的方法,还是Expression Blend。在Expression Blend中打开你的项目,导航到Objects and Timeline树直到你找到那些ApplicationBarIconButton对象。

  

  当你选中任何一个ApplicationBarIconButton时,看一下属性标签。你会看到一种设置每个图标和文字的简便方法。如下:

  

  如果你打开IconUri下拉框,你会看到很多可以用在程序中的标准图标。除非你有一套自定义的图标否则你肯定离不开它们,这些图标可以满足你大多数的需求(当然你可以自己创建图标并手动添加)。选中一个后,它会自动将白色版本添加到你的项目中。Jeff,为什么只有白色的?好问题。我马上就会说到。如果你没有在Blend中演练,那么来看一下图标列表:

  

  为什么只有白色图标?

  Windows Phone产品组让你的生活变得如此简单。你只需创建一个版本的图标,其他的会被自动处理。所以,当你提供一个用于深色主题的白色图标后,在用户使用浅色图标时它会自动将其转换成黑色。你可以试一下!选择列表中的一个图标,看看你的项目结构。现在在你的项目中只有一个图片。操作系统会在你需要的时候自动将白图标变为黑色的。

  让这些按钮真正有效

  好了,现在,你的程序中已经有了漂亮的按钮,但在你点击它们时它不会做任何事情。此时,它们和你XAML文件中的其他东西一样。需要给它们添加一个Click事件,以及后置代码中的一个事件处理程序。下面是这个简单程序的XAML和C#代码:

  XAML

<shell:ApplicationBarIconButton x:Name="AddButton" IconUri="/icons/appbar.add.rest.png" Text="Add" Click="AddButton_Click"/>
<shell:ApplicationBarIconButton x:Name="SubtractButton" IconUri="/icons/appbar.minus.rest.png" Text="Subtract" Click="SubtractButton_Click"/> 

  C#

private void AddButton_Click(object sender, EventArgs e)
  {
  Counter.Text = (Int32.Parse(Counter.Text.ToString()) + 1).ToString();
  }
  private void SubtractButton_Click(object sender, EventArgs e)
  {
  Counter.Text = (Int32.Parse(Counter.Text.ToString()) - 1).ToString();
  }

  这些带文字的菜单项是什么?

  另一个好问题。如果你运行了程序,可能会发现在省略号图标上点击时,工具栏展开并显示了一些菜单选项。如果你使用上面的默认代码,写的是MenuItem 1和MenuItem 2。它们的工作原理和图标按钮类似,用户点击时可以触发事件处理程序。下面是示例程序中工具栏展开时的样子(在两种主题下):

  

转载于:https://www.cnblogs.com/waw/archive/2011/10/20/2219514.html

Windows Phone 7 开“.NET研究”发之:工具栏相关推荐

  1. windows微信多开,超便捷的使用方式,真正一劳永逸的方法

    windows微信多开,超便捷的使用方式,真正一劳永逸的方法 与时俱进的社会,你还困扰在在电脑端只能用一个微信和别人聊天吗?跟我一起学会用多个微信聊天吧!实现工作号和私人号真正的"公私分明& ...

  2. 开元研究品牌调研的内容

    开元研究将品牌研究划分为五项进行研究:品牌定位研究.品牌诊断研究.品牌跟踪研究及开元自主进行的汽车口碑研究和网络与品牌研究,通过市场调研手段帮助客户确定正确的品牌定位,对品牌目前所处的位置.品牌存在问 ...

  3. 手动设置Windows 7的开关机、锁屏登陆界面壁纸

    手动设置Windows 7的开关机.锁屏登陆界面壁纸 前些天,我操作自己PC机更改了喜欢的开关机.锁屏画面.以下简单记录操作的步骤: 1.选张喜欢的背景图(图片分辨率和我们PC机的系统显示分辨率一样大 ...

  4. Windows程序多开一般处理

    Windows程序多开一般处理 一般部分程序为了利益可能会防止你多开,所以我这里介绍一下自己摸索半年学会的一些知识点并结合某款市面上现在的游戏进行讲解. 我们要实现多开前,一般需要知道如何防止多开. ...

  5. 开元研究之中国传统媒体发展预测

    开元研究 陈愈超 开元研究曾经发表过一篇文章,做过一个电视媒体将会雪崩的预测,最完整的文章链接:http://www.mediavalue.com.cn/333001.html,这篇文章在网络上引发巨 ...

  6. Windows Phone 7 开发之:工具栏

    前我们讨论了系统主题以及如何通过鼠标使用Expression Blend来设置系统值.今天,我们来看看另一个可以用Expression Blend轻松实现的主题.如果你看到在各个地方比如YouTube ...

  7. easyplayerpro 使用说明_EasyPlayerPro(Windows)流媒体播放器开发之ffmpeg log输出报错

    EasyPlayerPro主要基于ffmpeg进行开发,在EasyPlayerPro开发过程中,曾遇到一个相对比较棘手的问题,该问题一般在播放不是很标准的流或者网络情况较差,容易出现丢帧的情况特别容易 ...

  8. EasyPlayerPro(Windows)流媒体播放器开发之ffmpeg log输出报错

    EasyPlayerPro主要基于ffmpeg进行开发,在EasyPlayerPro开发过程中,曾遇到一个相对比较棘手的问题,该问题一般在播放不是很标准的流或者网络情况较差,容易出现丢帧的情况特别容易 ...

  9. 教程二:go语言windows gui界面开发之walk 控件学习第一节

    常用控件集合 本章介绍并学习路线中弹窗之前(包含弹窗)的所有控件 一.认识控件 本章将要学习的控件列表如下图所示,逐一讲解使用方法: 二.预备知识 2.1 控件结构体中通用字段 AssignTo :绑 ...

最新文章

  1. Python 三元条件判断表达式(and or/if else)
  2. datagrid中巧用loadFilter对数据整形
  3. 量子计算机会取代经典计算机,量子计算机已经可以取代经典计算机了?已科学解答...
  4. lamp一键安装包的一些注意点
  5. 获取版本号_Windows 10 2004迎来KB4577063更新 版本号升至19041.546
  6. boost.asio防止恶意空连接的方法
  7. python下载文件加上日期_Python实现给下载文件显示进度条和下载时间代码
  8. java 指针 地址压缩_JVM优化之压缩普通对象指针(CompressedOops)
  9. 【grafana】grafana 报错 Invalid interval string expecting a number followed by one of Mwdhmsy
  10. Vue编写动态组件实践(render函数的使用心得)
  11. Java内存区域-运行时数据区域
  12. cl.g4r.win index.php,win7 wamp环境配置Oracle数据库连接
  13. Python3截图识字工具
  14. 微信小程序--简约加载动画合集
  15. 菜鸟保税仓成全球商家进中国首选 秒级通关领先全球
  16. 通讯:岁寒情深 电暖农村
  17. python:使用unquote对url解码
  18. android开源项目---View篇
  19. Qt源码分析--QImage(8)
  20. 1046: 奇数的乘积 Python

热门文章

  1. 咱们从头到尾说一次 Java 垃圾回收
  2. 15万奖金强化学习赛事!Go-Bigger多智能体决策智能挑战赛来了!
  3. 《数据竞赛入门讲义》下载,北航计算机硕士两年经验总结
  4. 最常见核心的决策树算法—ID3、C4.5、CART(非常详细)
  5. 2021 GitHub年度报告:7300万开发者,最爱的依旧是Javascript
  6. 机翻降重?掩饰抄袭?SCI期刊上的这些「奇言怪语」,不少来自中国作者
  7. 刚毕业就20w年薪,这个项目太牛逼了!
  8. 一行代码发一篇 ICML?
  9. 科技部:论文数量、影响因子不可与奖励奖金挂钩,网友:早就该治了
  10. 深度学习的多个 loss 是如何平衡的?