零元学Expression Blend 4 - Chapter 40 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(上)
原文:零元学Expression Blend 4 - Chapter 40 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(上)
一直以来都有人拿Flash的动画问我Blend可不可以做到一样的动画效果
虽然我很明白Flash跟Silverlight差异在哪,但似乎对很多人来说,在网页上的动画效果已经根深蒂固的觉得只能用Flash才做到!?
在我看来....善用工具,并且用对工具,就能达到想要的效果!
技术日新月异,很多工具软体也越来越人性化,操作起来更是便捷
可能我对Blend有着特殊的感情,所以很偏心吧?
在Flash跟Blend做比较时,总是有着不想让Blend设计出的东西输掉一样的心情...
所以我把这次的MenuBar动画效果,分享给想要学习Blend的朋友
?
一直以来都有人拿Flash的动画问我Blend可不可以做到一样的动画效果
虽然我很明白Flash跟Silverlight差异在哪,但似乎对很多人来说,在网页上的动画效果已经根深蒂固的觉得只能用Flash才做到!?
?
在我看来....
善用工具,并且用对工具,就能达到想要的效果!
?
最近又遇到了有人拿Flash的动画效果问我MenuBar的动画效果运用Blend能不能做到一样?
为了证明Blend也能做得到,我就做了一个一样效果的东西还了回去。
?
技术日新月异,很多工具软体也越来越人性化,操作起来更是便捷
可能我对Blend有着特殊的感情,所以很偏心吧?
在Flash跟Blend做比较时,总是有着不想让Blend设计出的东西输掉一样的心情...
?
所以我把这次的MenuBar动画效果,分享给想要学习Blend的朋友
?
?
?
本章你将会学习到的观念有
RaidoButton的应用
Button触发范围大小的变更
使用Clip达到遮罩效果的运用
State和动画以及EasingFunction的复习
?
?
请移动滑鼠或是试试看效果
很抱歉,阁下使用的浏览器并不支援 IFrame,不能正常浏览我的网页
?
?
?
就是要让新手都看得懂!
?
那我们开始吧!
?
01
首先,在主要工作区置入一个Border:(想看Border的深入介绍请点这里)
(1)Background:本范例使用粉红色渐层,你可以自订,或是参考小猴子的设定
(2)BorderBrush:No brush
(3)BorderThickness:0
(4)CornerRadius:5
![]()
?
02
Border的部分完成後,为了使MenuBar内的按钮能够水平且整齐的排列
这边我们在Border内置入一个StackPanel,并请记得把Orientation设定为Horizontal
(想看StackPanel的深入介绍请看这里)
![]()
?
03
基本上使用者操作,点选Menu选项时,一般都只会选取一个按钮
所以这边使用带有只能单选属性的RaidoButton:
(1) 因为RadioButton是不能复选的,所以当使用者选取群组中的一个选项按钮时,会自动清除其他选项按钮;虽然RadioButton在同一个容器只能被选取1个,不过若是在不同容器里的RadioButton,就算在同一个页面还是可以被选取的喔!
(2) RadioButton 和 CheckBox控制项两者的功能类似:皆是让使用者选择选取或清除,但差别在於CheckBox可以同时选取多个选项按钮,RadioButton 则否。
?
可以在MSDN中,看到更多对RaidoButton的特性介绍
(其实在Ch26时,有针对RaidoButton做过一次介绍了,回顾请看这里。)
![]()
?
04
放入了RaidoButton以後,接着就是要改变它的Template,使之变成我们想要的样子
点选RaidoButton->Edit Template->Edit a Copy,开始修改预设样式
![]()
?
删掉不要的部份
![]()
?
把ContentPresenter置中
![]()
?
05
接下来,有个重要的小技巧要教大家
因为RaidoButton目前只有文字的地方是有颜色的,所以只有文字部分会触发事件
对HitTest机制的触发来说,它会选择有颜色的地方来认定选取范围
但是为了避免触发范围过小,所以要把Border设为有填色
如下图:
![]()
?
除非有特殊的用途,不然一般在设计上,都会希望使用者可以很方便就能点选按钮
(想深入了解HitTest机制吗?请看Ouch@点部落-[Silverlight]透过Grid来初步了解物件的MouseEnter、HitTest机制)
?
接下来照着设定,就可以修改触发范围的大小
目前一样是在Template编辑模式
Step1:选取最外层的Grid->Brushes->Background->随便你选取什麽颜色
Step2:更改颜色的透明度->100%改为0%
Step3:完成!
![]()
?
?
06
再来运用Make Clipping Path制作遮罩范围
?
同样是在Template编辑模式
Step1:在Grid内置入一个Rectangle,并使它填满整个Grid
Step2:在Rectangle上单击滑鼠右键->Path->Make Clipping Path
![]()
?
Step3:选择要被路径剪裁的物件(Choose the object that will be clipped by the path)->Grid
![]()
?
Step4:完成
如下图,物件超过遮罩就不会显示
可以在Properties->Miscellaneous->Clip检查是否已完成Make Clipping Path
?
![]()
?
?
?
07
置入一个Rectangle与Triangle,为我们将要制作的梯型做准备
Rectangle与Triangle交叠的部分,如下图位置:
![]()
?
?
接着一并选起Rectangle与Triangle後,单击滑鼠右键->Combine->Subtract
完成後,你会得到一个梯型的Path
![]()
?
接着把梯型Path放到能充满整个Grid的适当位子,并把透明度调整为20%
![]()
?
08
切换到State
在Base状态下,设定Transform的Translate X,让梯型Path退到Grid左边
![]()
?
选取Mouseover,开启Show Timeline後移动时间轴至0.5秒
并且调整Translate X使梯型Path回到原位
![]()
?
最後设定EasingFuntion->Back InOut->Amplitude(幅度)->1
![]()
?
完成後,离开Template编辑模式
并复制多个RadioButton在同一个StackPanel里?
将会看到如下的成果
很抱歉,阁下使用的浏览器并不支援 IFrame,不能正常浏览我的网页
?
接下来的设计,下篇告诉你
?
附上本篇的范例下载
?
?
(若有任何错误的地方,请各位前辈或同好能不吝指教,小女子都会虚心接受;若是你喜欢我的教学,请给我点鼓励,谢谢。)
一步一步迈向HIE之路
喜欢我文章请推我一下或给我个回应,你的鼓励会给我无限的动力喔!
若是您有其他问题或是特别需要,请在文章回应处留言,我会尽快回覆您
零元学Expression Blend 4 - Chapter 40 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(上)的更多相关文章
- 零元学Expression Blend 4 - Chapter 44 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(下)
原文:零元学Expression Blend 4 - Chapter 44 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(下) 抱歉久等了!!!! 终於到了动画MenuBar ...
- 零元学Expression Blend 4 - Chapter 41 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(中)
原文:零元学Expression Blend 4 - Chapter 41 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(中) 我们接着进行动画MenuBar的制作 接续着上 ...
- 零元学Expression Design 4 - Chapter 1 入门界面简介
原文:零元学Expression Design 4 - Chapter 1 入门界面简介 Expression Design 是Expression系列里面的一员,更是Blend跟Web的好帮手 而在 ...
- 零元学Expression Design 4 - Chapter 6 教你如何在5分钟内做出文字立体感效果
原文:零元学Expression Design 4 - Chapter 6 教你如何在5分钟内做出文字立体感效果 又来一篇五分钟做设计啦~ 本篇将教大家如何运用Design内建工具Blend Path ...
- 零元学Expression Design 4 - Chapter 7 使用内建功能「Clone」来达成Path的影分身之术
原文:零元学Expression Design 4 - Chapter 7 使用内建功能「Clone」来达成Path的影分身之术 本章所介绍的是便利且快速的内建工具Clone ? 本章所介绍的是便利且 ...
- 零元学Expression Design 4 - Chapter 5 教你如何用自制笔刷在5分钟内做出设计感效果
原文:零元学Expression Design 4 - Chapter 5 教你如何用自制笔刷在5分钟内做出设计感效果 本章将教你如何运用笔刷与简单线条,只要5分钟,就能做出设计感效果 ? 本章将教你 ...
- 零元学Expression Design 4 - Chapter 4 教你如何自制超炫笔刷
原文:零元学Expression Design 4 - Chapter 4 教你如何自制超炫笔刷 在Chapter 2 有稍微讲过Design内建笔刷的用法,本章将教大家如何自制独一无二的笔刷,并且重 ...
- 零元学Expression Design 4 - Chapter 3 看小光被包围了!!如何活用「Text On Path」设计效果
原文:零元学Expression Design 4 - Chapter 3 看小光被包围了!!如何活用「Text On Path」设计效果 本章将教大家如何活用「Text On Path」,做出文绕图 ...
- 零元学Expression Design 4 - Chapter 2 熟悉Design并且快速设计出Silverlight网页
原文:零元学Expression Design 4 - Chapter 2 熟悉Design并且快速设计出Silverlight网页 本章将用带大家熟悉Design 4并制作简易的网页版面,也会让你了 ...
随机推荐
- [React] Render Basic SVG Components in React
React loves svg just as much as it loves html. In this lesson we cover how simple it is to make SVG ...
- 前端怎么用js模拟应用 JSON-通俗易懂
前端怎么用js模拟应用 JSON-通俗易懂,这是转载额 好多孩子 弄不明确复杂的json 格式的应用,以下从基础来看一看JSON.怎么玩, 事实上结构理解清了,写起来比html还爽吧. 0.前言 ...
- ITFriend创业败局(一):选择创业方向和寻找合伙人,创业失败的2个关键点
这次创业惨淡收场,最主要的原因是没有选择一个合适的创业方向,没有找到合适的创业合伙人. 首先要说到创业方向,因为不同的创业方向需要组建不同的创业团队.我个人比较偏好,软件.网络.互联网等有一 ...
- 利用WPF建立自己的3d gis软件(非axhost方式)(七)实现简单的粒子效果
原文:利用WPF建立自己的3d gis软件(非axhost方式)(七)实现简单的粒子效果 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew密 ...
- WPF 禁用实时触摸
原文:WPF 禁用实时触摸 微软想把 WPF 作为 win7 的触摸好用的框架,所以微软做了很多特殊的兼容.为了获得真实的触摸消息,微软提供了 OnStylusDown, OnStylusUp, 和 ...
- 黑科技 —— Type-C 接口与 USB3.1
Type-C 接口解决了 USB 永远插不准的世界性难题. 小开科普一分钟:究竟USB Type-C是何方神圣? 1. Type-C USB Type-C,简称是 USB-C.Type-C 只是 US ...
- vue router 传递参数
vue-router 传参的方式 query 和params query 类似于get请求的传参方法 就是 ? 这种形式的 https://i.cnblogs.com/EditPosts.aspx?o ...
- mysql和mysqli使用笔记
总体来说还算兼容得还行,很多函数直接加个i 即可,比如mysql_connect -> mysqli_connect. 有些细小的区别,mysqli 更严格,当变量有与字段重名时,改变变量名才可 ...
- Mybatis动态建表
在网上查了很多,都说Mybatis不支持动态建表,心凉了一节.还好找到这么一篇,找到了希望:http://www.zzzyk.com/show/ec5660d9cf1071b3.htm 经过在mysq ...
- DDD实战8_2 利用Unity依赖注入,实现接口对应实现类的可配置
1.在Util类库下新建DIService类 /// <summary> /// 创建一个类,对应在配置文件中配置的DIServices里面的对象的 key /// </summar ...