这次分享如何做一个简单的图片按钮经验

在我的个人Silverlight网页上,有个Iphone手机的效果,其中用到大量的图片按钮

http://raimon.6.gwidc.com/Iphone/default.html

我现在来介绍一下这种图片按钮的制造步骤:

1、首先在项目里新建一个存放图片的目录,并添加2个图片(60*60),1个是按钮正常显示时的图片,另外一个是鼠标移动到按钮上时显示的图片

2、在页面上放入Address1.png图片(60*60)和一个按钮(60*80),按钮高度比图片稍高,是因为我们最终做的图片按钮要在图片的下方显示按钮的功能名称的,如下图

3、在对象时间线面板里将图片拖入按钮中,形成上下级关系:

4、右键点击按钮,编辑模板—编辑副本

5、在创建Style资源对话框里输入资源名称和位置

6、确定后,进入模板编辑模式

ContentPresenter对应的是按钮中的图片,此处不能更改,其余元素可删除

7、选择ContentPresenter元素,在其属性面板里可以看见其默认布局

选择右侧的黄色小方块,重置其属性,并将垂直对齐方式改为Top对齐

这样图片就在按钮空间中向上对齐了,下方位置我们就可以写按钮的功能名称了

8、在Grid里添加一个TextBlock

对齐方式为水平居中、向下对齐,文本为“通讯录”

9、由于图片元素本身对应的是Button按钮的Content模板,所以功能名称就无法绑定到Content模板了,那怎么办呢?我们寻找另外一个文本模板进行绑定

点击右侧白色小方块,选择模板绑定,找到Tag模板

10、现在退出模板编辑模式、回到页面,选择按钮,在属性面板里找到Tag属性,并写入“通讯录”

11、我们回到模板编辑状态,右键按钮、编辑模板—编辑当前模板(这时不需要编辑副本了)

可以看见按钮的功能名称已经变成了“通讯录”

12、按钮的元素都准备好了,我们开做按钮的状态,主要是MouseOver和Pressed状态

在状态面板里,点击MouserOver,亮起小红眼,我们要记录其状态了

这里我们做个简单的状态变化,在对象面板里选择Grid容器,在它的属性面板里找到“转换”项,选择第三个“缩放”,将X和Y的比例改为1.1

13、然后我们点击Pressed,准备记录其状态

我们还是选择Grid容器,在它的属性面板里找到“转换”项,选择第三个“缩放”,将X和Y的比例改为0.9

14、到此2个按钮的关键状态就做完了,各位看官一定有疑问,不是还准备了一个鼠标移动到按钮时需要显示的图片吗?怎么不用呢?因为我介绍的这种图片按钮的做法是具有复用性的,不同的按钮只需要改变其子级的图片路径就可以得到不同的图片按钮,相对的这个按钮的不同状态图片就只能用后台代码来切换了。

15、我们退出按钮的模板编辑状态,回到页面,给按钮起个名字“AddressButton”,并选择按钮的事件面板,分别双击“MouseMove”和“MouseLeave”事件,会在xaml页面的后台代码中看见新增了这2个事件代码

我们添加如下代码段,并添加引用:using System.Windows.Media.Imaging;

 privatevoid AddressButton_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)

         {

            Image img= AddressButton.Contentas Image;

            BitmapImage bitmapImage =new System.Windows.Media.Imaging.BitmapImage();

            bitmapImage.UriSource =new Uri("Images/Address2.png", UriKind.Relative);

            img.Source = bitmapImage;

         }

         privatevoid AddressButton_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)

         {

            Image img= AddressButton.Contentas Image;

            BitmapImage bitmapImage =new System.Windows.Media.Imaging.BitmapImage();

            bitmapImage.UriSource =new Uri("Images/Address1.png", UriKind.Relative);

            img.Source = bitmapImage;

         }

16、好了,一个简单的图片按钮制作完成了,大家试试效果吧!大家可以举一反三,扩展这种图片按钮制作方法,制作出更加出色的按钮。谢谢观看。

Expression Blend的经验分享会持续推出,欢迎关注我的博客!
如果你觉得好,请帮忙推荐一下,谢谢!
我个人的小作品展示平台 :http://raimon.6.gwidc.com/
欢迎有志于钻研Blend的朋友加入我们的Blend美工群QQ:152049269

Expression Blend4经验分享:制作一个简单的图片按钮样式的更多相关文章

  1. Expression Blend4经验分享:制作一个简单的文字按钮样式

    首先在Grid里放一个TextBlock,对象时间线窗口的结构树如下 右键点击grid,选择构成控件 会弹出构成控件的对话框,选择你要构成的控件类型,控件名称,控件样式存储位置 这里我们选择butto ...

  2. Expression Blend4经验分享:自适应布局浅析

    今天分享一下Blend制作自适应分辨率布局的经验,大家先看下效果图: 这是一个标准的三分天下的布局,两侧的红色区域是背景区域,是用来干吗的呢,下面简单的分析一下,大家就明白了. 1.拿到一个项目,进行 ...

  3. Expression Blend4经验分享:文字公告无缝循环滚动效果

    这次分享一个类似新闻公告板的无缝循环滚动效果,相信很多项目都会应用到这个效果.之前我也百度了一下,网上的一些Silverlight的文字或图片滚动效果,都是一次性滚动的,如果要做到无缝循环滚动,多数要 ...

  4. 用Java制作一个简单的图片验证码

    //Java实现简单验证码功能 package project; import java.awt.Color; import java.awt.Font;import java.awt.Graphic ...

  5. TensorFlow练习13: 制作一个简单的聊天机器人

    现在很多卖货公司都使用聊天机器人充当客服人员,许多科技巨头也纷纷推出各自的聊天助手,如苹果Siri.Google Now.Amazon Alexa.微软小冰等等.前不久有一个视频比较了Google N ...

  6. PureMVC和Unity3D的UGUI制作一个简单的员工管理系统实例

    前言: 1.关于PureMVC: MVC框架在很多项目当中拥有广泛的应用,很多时候做项目前人开坑开了一半就消失了,后人为了填补各种的坑就遭殃的不得了.嘛,程序猿大家都不喜欢像文案策划一样组织文字写东西 ...

  7. 实例学习SSIS(一)--制作一个简单的ETL包

    原文:实例学习SSIS(一)--制作一个简单的ETL包 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SS ...

  8. 手把手制作一个简单的IDEA插件(环境搭建Demo篇)

    新建IDEA插件File --> new --> Project--> Intellij PlatForm Plugin-->Next-->填好项目名OK 编写插件新建工 ...

  9. 如何使用AEditor制作一个简单的H5交互页demo

    转载自:http://www.alloyteam.com/2015/06/h5-jiao-hu-ye-bian-ji-qi-aeditor-jie-shao/ 本教程演示如何使用AEditor制作一个 ...

随机推荐

  1. 网络编程4--毕向东java基础教程视频学习笔记

    Day24 06 自定义浏览器-Tomcat服务端07 自定义图形界面浏览器-Tomcat服务端08 URL-URLConnection09 小知识点10 域名解析 06 自定义浏览器-Tomcat服 ...

  2. oom_kill_process造成数据库挂起并出现found dead shared server

    这篇博客是上一篇博客Oracle shutdown immediate遭遇ORA-24324 ORA-24323 ORA-01089的延伸(数据库挂起hang时,才去重启的),其实这是我们海外一工厂的 ...

  3. android 滑动滚动条调节音量

    利用滚动条滑动控制音量: 定义: private SeekBar mseekBarvolume: 以下实现代码: //调节音量--begin------------------------- //音量 ...

  4. linux基础-基本命令的讲解(1-7单元)

    基本命令的讲解 主要内容介绍 1.LINUX操作系统安装及初始化配置(熟悉):2.LINUX操作系统目录组成结构及文件级增删改查操作(重点):3.LINUX操作系统用户.权限管理(重点):4.开源软件 ...

  5. uva 6757 Cup of Cowards(中途相遇法,貌似)

    uva 6757 Cup of CowardsCup of Cowards (CoC) is a role playing game that has 5 different characters (M ...

  6. 报表引擎API开发入门— EJB程序数据源

    我们前面讲了几个数据源,今天我们来讲一下EJB数据源,这篇讲完我们数据源这部分就讲完了.数据连接不需要直接访问数据库,而是使用EJB做为数据源.FR通过定义程序数据集使用EJB的相关类获取到EJB数据 ...

  7. MVC、MVVM、MVP小结

    MVC MVC(Mode View Controller)是一种设计模式,它将应用划分为三个部分: 数据(模型).展现层(视图).用户交互(控制器). 一个事件发生的过程: ① 用户和应用产生交互 ② ...

  8. CF719C. Efim and Strange Grade[DP]

    C. Efim and Strange Grade time limit per test 1 second memory limit per test 256 megabytes input sta ...

  9. 面试题:return和finally执行

    Demo类: public class Demo { public int get() { int x=1; try { x++; return x; }finally{ ++x; } } } Tes ...

  10. AppStore ipa (苹果内购)笔记

    内购示意图 准备条件 苹果的开发者证书,已经为应用启用App内购,并在Xcode更新配置文件 itunes store设置 itunes中创建App及其它设置 参考:iOS应用程序内购/内付费(一)  ...