02、Universal app 中 application bar (BottomAppBar) 的图标设置

前言,windows10 昨天凌晨发布了,windows store 开发模型比以前的 silverlight 模型由很多优势,

我也小兴奋了一把。

正文:

在 windows phone 8.0 以前的开发中, application bar 的图标设置相对单一,到了 windows store app 后,

app bar 的设置方式较多了。

首先在页面中,5个按钮的显示效果(按钮放大后,明显看到第三个 “搜索按钮” 出现了锯齿现象,原因是使用了 png 图片作为图标,

其它的是使用的矢量图标 或者控件,支持无损缩放):

前面 4个:

第5个:

全部的相关 xaml 代码:

 <Page.BottomAppBar>
     <CommandBar>
         <AppBarButton Label="飞机">
             <AppBarButton.Icon>
                 <FontIcon FontFamily="Segoe UI Symbol" Glyph=""/>
             </AppBarButton.Icon>
         </AppBarButton>

         <AppBarButton Label="笑脸">
             <AppBarButton.Icon>
                 <SymbolIcon/>
             </AppBarButton.Icon>
         </AppBarButton>

         <AppBarButton Label="搜索">
             <AppBarButton.Icon>
                 <BitmapIcon UriSource="Images/test/search.png"/>
             </AppBarButton.Icon>
         </AppBarButton>

         <AppBarButton Label="椭圆">
             <AppBarButton.Icon>
                 <PathIcon>
                     <PathIcon.Data>
                         <EllipseGeometry  RadiusX="10" RadiusY="5" Center="20,20"/>
                     </PathIcon.Data>
                 </PathIcon>
             </AppBarButton.Icon>
         </AppBarButton>  

         <AppBarButton Label="控件">
             <TextBlock Text="love" Foreground="Yellow" FontSize="15" Margin="8,10,0,0"/>
         </AppBarButton>
     </CommandBar>
 </Page.BottomAppBar>

1、飞机图标

使用的是 windows 系统默认安装的 “Segoe UI Symbol” 字体

1)在 win8.1 系统的 “超级按钮” 中搜索选项中,输入“字符”,打开 “字符映射表” :

2)打开后,选择 “Segoe UI Symbol” 字体,并且选择需要设置的图标(这里选择 “飞机”):

将  "" 设置给 FontIcon 的 Glyph属性,注意前缀 &#x 和 后缀 ;

<AppBarButton Label="飞机">
    <AppBarButton.Icon>
        <FontIcon FontFamily="Segoe UI Symbol" Glyph=""/>
    </AppBarButton.Icon>
</AppBarButton>

3) 可以在 xaml 页面中,选中 AppBarButton 后,点击键盘的 F4, 在属性窗口中,进行设置:

2、笑脸图标

在 xaml 中,选中app bar 中的按钮,F4 打开属性对话框,在 Symbol 下拉框中,有很多

图片可以选择:

相关的 xaml:

 <AppBarButton Label="笑脸">
     <AppBarButton.Icon>
         <SymbolIcon/>
     </AppBarButton.Icon>
 </AppBarButton>

3、搜索图标

这个是最简单的了,把 BitmapIcon 对象设置为本地工程目录下的一张 png 图片即可,缺点是

如果在高清屏上,有可能出现锯齿,而其它几个是支持矢量缩放的。

相关 xaml:

 <AppBarButton Label="搜索">
     <AppBarButton.Icon>
         <BitmapIcon UriSource="Images/test/search.png"/>
     </AppBarButton.Icon>
 </AppBarButton>

4、设置  PathIcon.Data

因为该 Data 对象是一个 Geometry 类型的属性,所以可以把它的众多子类赋值给它:

这里设置一个简单的椭圆:

5、直接设置 UIElement 作为 AppBarButton 的内容

1)在 xaml 页面,打开 AppBarButton的属性对话框:

这里设置为一个 TextBlock 控件:

显示效果:

之所以可以直接设置 xmal 元素,原因是 AppBarButton 继承自 Button,

而 Button 间接继承自 ContentControl,它的 Content 属性是 object 类型的:

完。

另附一个园友的 “Segoe UI Symbol图标字体及常用图标列表

时间: 2024-10-01 02:52:49

02、Universal app 中 application bar (BottomAppBar) 的图标设置的相关文章

Windows Universal App中集成C/C++ DLL

借助Windows 10的普及,微软开始推Universal应用开发.Universal应用其实和Android和iOS应用一样,运行在sandbox中,在桌面环境里exe不能双击运行.打成一个appx包之后可以提交到Windows Store.任何运行Windows 10的设备都可以运行.那么在开发的时候,现有的C/C++ SDK是否可以兼容呢?答案是可以的,不过会有一些限制.如果你想让SDK兼容所有的设备,需要提供行x86, x64, arm三个版本DLL.我用Dynamsoft Barco

windows universal app中使用mvvm light

新建空的universal app project,在windows 8.1 和 windows phone 8.1 的project中分别添加“MVVM Light libraries only (PCL) NuGet” 包 在shared project 中新建view model 的class using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using System; using System.Collections.

博客园客户端(Universal App)开发随笔 - Setting Page的实现方法与经验

前言 几乎所有的移动 App 都会为用户提供一个设置页面(Setting Page 或 Preference Page),来满足大家对于一个 App 众口难调的需求.虽然有一种说法表示,最好的 App 不需要设置,一切默认呈现给用户的就是最好的选择.但是对于大多数开发人员来说,这样的境界不是可以简单达到的:而且对于部分“设置控”用户来说,没有设置页面怎么看都觉得少了些什么.所以对于大部分 App 来说,设置页面还是一个必备品. 本文将分别介绍 Windows 和 Windows Phone 的设

Windows Phone 8.1 开发技术概览 (Universal APP)

原文:Windows Phone 8.1 开发技术概览 (Universal APP) 前一阵真的比较懒 WP8.1 已经出来这么长时间了现在才更新BLOG让大家久等了,今天我先为大家介绍下 WP 8.1的开发框架,什么是微软所推崇的 Universal APP,以及我们要开发 Universal APP的时候要注意哪些内容. 如果是您是一个刚刚接触 WP开发的朋友可以先看下我之前的文章了解一下故事背景:Windows Phone 8 与 windows 8 开发技术概览 首先给大家完善一个概念

博客园客户端(Universal App)开发随笔 - UAP中的项目和目录组织

前言 本篇随笔主要是分享一下做一个Universal App的目录组织结构,说明什么样的结构才能适合一个团队开发,使开发成员之间的相互影响最小.这些组织好的项目和目录会成为一个公共的规约,大家都能知道什么东西应该放在哪里,或者在什么地方能找到什么功能.这对于避免重复写code或者最大限度地复用code来说是至关重要的. 这种工程结构和目录划分虽然没有什么理论基础,但是是经过我们很多项目的经验总结出来的,如果是个人开发者,也严重建议参考此组织结构,能够帮助你理清思路,做好功能设计和类设计. 项目组

在APP中集成iAd Banner展示广告盈利

如果你已经做了一款超牛X的APP.你也许还有一件是需要操心.APP够好了,怎么盈利呢?你可以对下载你的APP的用户收费.也可以完全的免费,然后在APP里放广告来实现盈利.现在来说,除非一款APP真的是非用不可的,或者很有名,在要不就是很好玩的游戏.否则,用户一般是不会付费的.明智的选择是免费,集成广告.广告的收益是由苹果和开发这共同分成.一般来说开发者占七成,apple占三成.毕竟苹果建立了广告分发的网络. 当然也有很多的开发者选择了在免费版的APP里插播广告的同时,还开发了一个收费但是没有广告

博客园客户端(Universal App)开发随笔 – App也需要物流前的打包

想起来一个笑话:唐僧一行千辛万苦来到佛祖面前,准备取经,佛祖轻声问了一句:汝等带U盘了吗?师徒4人立刻昏倒在地.好吧,扯远了,不过是想告诉大家准备工作一定要到位. Universal App 的打包发布其实与传统的 Windows Phone / Windows Store App 项目并无太大不同,但是鉴于总有人会在这些步骤中遇到问题,而且即使是发布过几个应用的开发者也不例外,所以对这个看起来比较繁琐的过程做一个小结还是必要的. 打包前的准备工作 1. 修改编译模式 在调试程序时,我们通常会选

如何把apk编译时间和最后次git commit的sha值,写入到app中

需求背景:我们修复Bug的时候,频繁提交APK包,导致测试同学搞不清哪个包才是最新的 比如一个版本3.0.1,我们可能后续基于这个版本陆续提交了好几个修复包 同时,如果服务端ip地址能在界面上配置的话,更好了 以上都是基于debug模式下的,线上版本不会出现这些选项 思路:git每次提交commit的时候,都会创建一个唯一的sha串,我们拿这个作为内部版本号. 先给上最终效果图 那么如何在gradle编译的时候,就把这些信息写入到app中呢 关键字 BuildConfig类. 在build.gr

如何在android app中使用STL库

方法: 1.在jni目录下新建Application.mk; 加入 APP_STL := stlport_static右边的值还可以换成下面几个: system - 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持 stlport_static - 使用STLport作为静态库,这项是Android开发网极力推荐的 stlport_shared - STLport作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用. gnustl_st