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

Windows 8 应用商店应用开发 之 轮廓样式

[复制链接]

尚未签到

发表于 2015-5-23 13:37:33 | 显示全部楼层 |阅读模式
8.4 轮廓样式
在前面介绍绘制图形时,已经涉及到了Stroke属性和StrokeThickness属性,这两个属性分别用来设置轮廓颜色和轮廓粗细,本节将在这两个属性的基础上进一步介绍如何设置图形的轮廓样式,使绘制的图形变的美观。
(1)线的两端效果
在绘制粗线时,使用StrokeStartLineCap和StrokeEndLineCap属性能修改线形的起始端和末端,这两个属性的可选值是PenLineCap枚举类型的成员:Flat、Round、Square和Triangle。其中Flat是默认值,Flat并没有特殊效果;Round值表示在线形的末端添加一个直径等于线粗细的半圆;Square值表示在线形的末端添加一个高度等于直线粗细、长度等于直线粗细一半的矩形;Triangle值表示在线形的末端添加一个底边长度等于直线粗细的等腰直角三角形。下面通过一个具体的示例展示如何设置线的两端效果。
在一个打开的Windows应用商店项目中新建一个空白页,并命名为LineCapPage,双击打开此页面的LineCapPage.xaml文件,在Grid元素中添加如下代码。



上面的代码添加了一个Polyline控件,并设置Stroke属性为Chocolate、StrokeThickness属性为20,定义StrokeStartLineCap属性值为Triangle、StrokeEndLineCap属性值为Round,从而设置线的两端效果为三角形和圆角。最后向Points属性中添加三个点。
运行此页面,效果如图8-15所示。
DSC0000.png

图8-15线的两端效果图

PenLineCap枚举类型的成员Flat与Square区别并不太明显,下面通过一个示例来展示二者的区别。在一个打开的Windows应用商店项目中新建一个空白页,并命名为FlatSquarePage,双击打开此页面的FlatSquarePage.xaml文件,在Grid元素中添加如下代码。






上面的代码添加了一个Polyline控件,并设置Stroke属性为Chocolate、StrokeThickness属性为20。定义StrokeStartLineCap属性值为Square、StrokeEndLineCap属性值为Flat,从而设置线的两端为不同的效果,其中Square值会在开始端添加一个矩形,而Flat值在末端没有效果。为了更好地显示轮廓两端的对比效果,又添加了一个Polyline控件作为“参考线”,并设置Stroke属性为Black、StrokeThickness属性为1,定义Points属性与上一个Polyline控件的Points属性值相同。
运行此页面,效果如图8-16所示。
DSC0001.png

图8-16 Flat与Square的效果对比图

上面的示例按照添加图形的层叠顺序依次显示。若想改变图形的层叠顺序可以通过设置Canvas.ZIndex属性的值,ZIndex的值越大层叠顺序越靠前。
(2)图形拐角处的效果
使用StrokeLineJoin属性能设置图形拐角处的效果。StrokeLineJoin属性的可选值是PenLineJoin枚举类型的成员:Miter、Bevel和Round。其中Miter是默认值,表示线条联接使用常规角顶点。Bevel值表示线条联接使用斜角顶点。Round值表示线条联接使用圆角顶点。下面通过一个具体的示例展示这三个值的效果。
在一个打开的Windows应用商店项目中新建一个空白页,并命名为StrokeLineJoinPage,双击打开此页面的StrokeLineJoinPage.xaml文件,在Grid元素中添加如下代码。



上面的代码添加了一个Polyline元素,设置Stroke属性为Chocolate、StrokeThickness属性为20,并向Points属性中添加四个点,最后定义StrokeLineJoin属性值为Bevel,从而设置拐角处的效果为斜角顶点。
运行此页面,StrokeLineJoin属性的Bevel值效果如图8-17所示。
DSC0002.png

图8-17 拐角处的斜角顶点效果

将上面StrokeLineJoin的属性值改为Round,即可设置拐角处的圆角顶点,代码如下所示:



DSC0003.png

图8-18 拐角处的圆角顶点效果

采用PenLineJoin枚举类型的成员Miter连接会存在一点问题,如果拐角处为锐角斜切面可能会非常长,为了避免此类情况的发生,可以使用StrokeMiterLimit属性设置切面的长度。
在一个打开的Windows应用商店项目中新建一个空白页,并命名为StrokeMiterLimitPage,双击打开此页面的StrokeMiterLimitPage.xaml文件,在Grid元素中添加如下代码。






上面的代码添加了一个Polyline元素,设置Stroke属性为Chocolate、StrokeThickness属性为20,并向Points属性中添加四个点。接着定义StrokeLineJoin属性为Miter、StrokeMiterLimit属性为3。为了更好的显示轮廓粗细产生的效果,又添加了一个Polyline控件作为“参考线”,并设置Stroke属性为Black、StrokeThickness属性为1,定义Points属性与上一个Polyline控件的Points属性值相同。
运行此页面,效果如图8-19所示。
DSC0004.png

图8-19 使用StrokeMiterLimit属性的效果图

下面的代码没有设置StrokeMiterLimit属性的值,锐角斜切面会很长,效果如图8-20所示。






DSC0005.png

图8-20没有使用StrokeMiterLimit属性的效果图

(3)虚线样式
通过StrokeDashArray属性可以使实线变成虚线并能使用StrokeDashCap属性设置虚线的两端效果。下面通过一个示例展示StrokeDashArray属性的使用方法。
在一个打开的Windows应用商店项目中新建一个空白页,并命名为StrokeDashArrayPage,双击打开此页面的StrokeDashArrayPage.xaml文件,在Grid元素中添加如下代码。



上面的代码添加了一个Polyline元素,设置Stroke属性为Chocolate、StrokeThickness属性为15,定义StrokeStartLineCap属性和StrokeEndLineCap属性都为Round,从而设置线的末端效果,并向Points属性中添加四个点。接着定义StrokeDashArray属性为“1 2”,表示绘制虚线的时候,先是一段长度为线宽的的直线,然后是一段长度为线宽2倍的间隙,并不短重复直到线的末尾。
运行此页面,效果如图8-21所示。
DSC0006.png

图8-21虚线样式效果

从图8-12可以看到图形的起始端与末端变成了半圆而中间区域的虚线并没有变化,使用StrokeDashCap属性能设置虚线两端的效果,StrokeDashCap属性的可选值是PenLineCap枚举类型的成员:Flat、Round、Square和Triangle。这四个值产生的效果可以参照本节开始部分的介绍。
在上面实例的基础上设置StrokeDashCap属性即可设置虚线两端的效果,代码如下所示:



上面的代码只是简单的将StrokeDashCap属性设置为Triangle,便能产生虚线两端的三角形效果,运行效果如图8-22所示。
DSC0007.png

图8-22虚线两端的三角形效果



注:本文选自机械工业出版社2013年3月出品的《Windows 8 应用开发权威指南》

运维网声明 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-69869-1-1.html 上篇帖子: 中文版示例代码浏览器for Windows 8 下篇帖子: Windows 8开发 WinRT APP使用其他关联应用程序打开文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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