【万里征程——Windows App开发】画笔和图像
画笔想必大家都不陌生,这里系统的介绍一下好了。先来介绍纯色画笔。
最简单的纯色画笔就是已经定义好名字的啦,比如Red和Green这种,据说一共有256种已命名的,所以基本已经够用啦。XAML解析器会自动将这些颜色名称链接到Color结构。
还有就是传说中的十六进制颜色值,它可以定义精确的24位颜色值,其中有8位用于SolidColorBrush。如下代码所示的,alpha=”FF”,红色=”55”,绿色=”00”,蓝色=”88”。
<Rectangle Width="200" Height="100" Fill="#FF550088" />
还有一种称为属性元素语法。具体用法如下,其中Opacity就是透明度咯。
<Rectangle Width="200" Height="100"><Rectangle.Fill><SolidColorBrush Color="Yellow" Opacity="0.3" /></Rectangle.Fill></Rectangle>
除了纯色画笔外,还有渐变画笔。小时候学PhotoShop的时候最喜欢渐变画笔了。
LinearGradientBrush会沿着一条称为渐变轴直线来进行渐变以绘制一个区域。我们还是拿Rectangle来做示例。
<Rectangle Width="200" Height="100"><Rectangle.Fill><LinearGradientBrush StartPoint="0,0" EndPoint="1,1"><GradientStop Color="Green" Offset="0.0" x:Name="GradientStop1"/><GradientStop Color="Blue" Offset="0.25" x:Name="GradientStop2"/><GradientStop Color="Wheat" Offset="0.7" x:Name="GradientStop3"/><GradientStop Color="Yellow" Offset="0.75" x:Name="GradientStop4"/><GradientStop Color="Gold" Offset="1.0" x:Name="GradientStop5"/></LinearGradientBrush></Rectangle.Fill></Rectangle>
通过改变StartPoint和EndPoint的属性值可以创建各种渐变哦,比如垂直和水平方向的渐变,还可以颠倒渐变方向,甚至还可以加快渐变速度呢。
除了用着两种画笔外,还可以直接将图片添加进来呢。
<Ellipse Height="100" Width="200"><Ellipse.Fill><ImageBrush ImageSource="9327.jpg" /></Ellipse.Fill></Ellipse>
效果如下咯,主要是有一张合适的图片啦。
既然用到了ImageBrush,那就来看看Image和ImageBrush的区别好了。前者主要用来呈现图像,后者则为其他对象绘制为一个图像。
对于Image,我们可以来拉伸图像,也就是Stretch属性。
None:图像不经过拉伸。如果源图像比所留给Image的区域大,那么就会被剪切。
Uniform:按照纵横比来缩放图像。
UniformToFill:按照纵横比来填满所有区域,这意味着可能会有一部分不可见。
Fill。因为不保留纵横比而填满屏幕,所以图像部分全部可见,但会产生画面变形(失真)。
具体效果见下图(来源于网络)。
用Clip属性可以对图像进行剪裁,Rect属性在上一篇博客中用过许多次,前2个值为起始点的X轴和Y轴坐标,后2个值为终点的X轴和Y轴坐标。
<Image Source="9327.jpg"><Image.Clip><RectangleGeometry Rect="10,10,100,100"/></Image.Clip>
</Image>
Image和ImageBrush能处理的图像格式有哪几种呢?
JPEG XR
图标(ICO)
位图(BMP)
图像交换格式(GIF)
联合图像专家组(JPEG)
可移植网络图像(PNG)
标记图像文件格式(TIEF)
为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp
【万里征程——Windows App开发】画笔和图像相关推荐
- 【万里征程——Windows App开发】应用栏
基本的用法我们在 [万里征程--Windows App开发]页面布局和基本导航中已经讲过了,这里继续补充关于应用栏的更多用法. Icon 在之前的学习中,我们知道Icon属性中有很多很多系统预定义,但 ...
- 【万里征程——Windows App开发】SemanticZoom视图切换
相信用过Windows Phone或者Windows 8/8.1/10的朋友对下面这张截图肯定不陌生.这就是通过SemanticZoom来实现的,当数据过多时,这种控件尤其适用.它有一个放大视图Zoo ...
- 【万里征程——Windows App开发】开发准备
操作系统及SDK 操作系统 如果打算开发Windows App,那么你的电脑就不能再用老旧的Windows 7了.推荐使用Windows 8.1.写这篇博客的时候,我用的操作系统是Windows 10 ...
- 【万里征程——Windows App开发】动态磁贴
动态磁贴是什么,相信大家用了这么久的Windows 8/8.1/10早就非常了解了吧. 像什么小磁贴.中磁贴.宽磁贴.大磁贴,还有这里的应用商店Logo等,大家在下面根据不同的分辨率选择合适的图片就好 ...
- 【万里征程——Windows App开发】DatePickerFlyout、TimePickerFlyout的使用
已经有挺长时间没有更新这个专栏了,不过刚才有网友私信问我一个问题现在就火速更新上一篇~ 这一篇讲解在WP上DataPickerFlyout和TimePickerFlyout的使用,但它们只能在WP上跑 ...
- 【万里征程——Windows App开发】DatePickerTimepicker
在前面我们走马观花地介绍了一大堆控件,其中自然也包括这DatePicker和TimePicker,那么稍微高级些的用法呢? 如果你想做一个关于健身.闹钟等的App,那么不可避免的会用到时间这些控件了. ...
- 【万里征程——Windows App开发】数据绑定——简单示例、更改通知、数据转换...
简单的数据绑定示例 相比于理论,我更倾向于从实践中开始博客,尤其是对于数据绑定.那么,我们先来看看几个简单的例子. 1.数据绑定到TextBox 我们依旧使用前面的闹钟类来开始.在下面的代码中,我们有 ...
- 【万里征程——Windows App开发】使用Toast通知
前面我们使用了 MessageDialog来作为弹窗,这里来介绍一个更加高大上的Toast通知. Toast通知本质上动力是由XML来提供的,一开始我还不相信不知道XML原来有这么大的威力.现在就来看 ...
- 【万里征程——Windows App开发】文件数据——文件选取器
使用文件选取器保存文件 就我个人而言,还是非常喜欢使用文件选取器的,因为能够用自己的代码来调用系统的各种弹框. 在这个示例中,首先在XAML中添加一个Button和一个TextBlock,分别命名为b ...
最新文章
- 【技术干货】如何进行低功耗设计和开发
- 网页轻松展示CV、NLP模型,连你老爸都会操作 | 斯坦福出品
- python 类成员变量是否存在_python中类变量与成员变量的使用注意点总结
- 被冻结的钱,银行可以私自处理吗?
- 颠覆未来世界的十大科技
- 阿里巴巴云原生大数据运维平台 SREWorks 正式开源
- 【Java】访问控制
- Leetcode 344:Reverse String 反转字符串
- linux 批量ping ip脚本,Linux下批量ping某个网段ip的脚本
- HTML img标签无法居中
- OpenJudge 1.6.4
- 94个JS/eTS开源组件首发上新,肯定有你要用的一款
- 共享电车“享骑”押金退还花样多啊
- VK1668 SSOP24兼用TM1668的LED数码驱动芯片
- web兼容性测试 _ Web测试指南(四)
- js对div取值与赋值
- MySQL数据类型 -- 日期时间型
- Python爬取20778套深圳二手房并数据分析
- clamp漫画作品集
- 系统架构师谈企业应用架构之业务逻辑层
热门文章
- 内外交困,直播商业化寡头博弈困境:向左或是向右走?
- isdigit函数python 小数_学习:python str.isdigit() 有浮点数的判断
- 【微信小程序】实现上拉加载更多
- swagger-ui 转换成文档
- 火花、火种、火炬——中国软件外包企业创新观察
- FISCO BCOS 区块链
- cad批量等高线lisp,利用AUTOLISP自动绘制等高线的尝试
- delphi random_random函数详解 ,随机函数 全
- 基于Gromacs模拟软件分析小分子配体与蛋白结合之后的稳定性
- 如何开发一个chrome浏览器插件