Expression Blend学习5控件-TextButton
Expression Blend ButtonStyle- TextButton
本章以TextButton为例,讲解如何最简单,最快速的制作一个专业的TextButton。
对于这个TextButton的需求是这样的,鼠标悬浮时,光标变为“手指”,并改变按钮的前景色,鼠标按下时,有明显的按下的感觉。
都会遇到一个问题,ContentPresenter没有Foreground属性,如何改变前景色?
新建一个TextBlock,输入I'm TextButton
右击TextBolck,选择Make Into Control
为我们的样式取名为TextButtonStyle,Blend默认每次新建样式时的ControlType就是Button,所以直接点击OK
看一下Blend为我们生成的元素列表,他将TextBlock自动转换为ContentPresenter,并用一个Grid包裹。
鼠标悬浮时,改变按钮的前景颜色,为了实现这个效果,先将ContentPresenter替换为ContentControl 。(替换方法为:先删除ContentPresenter,然后点击工具条上的按钮,在搜索栏中输入ContentControl,如果没结果请稍等几十秒s)
注意:wpf中使用这种方法也是可行的。只是将ContentPresenter替换为ContentControl后,必须给ContentControl加上“SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"”。
将ContentControl.Content属性与Button逻辑树中的Content属性绑定。点击ContentControl,在右侧属性面板中,找到Content属性,点击Content属性最右侧的小方块。
在弹出菜单中,顺序选择Template Binding -> Content
如果你上面的步骤都操作正确的话,ContentControl的Content属性会自动绑定我们之前输入的文本
注意:wpf的过程中是丢失字体的,需要重新添加
为什么要使用ContentControl?原因在于ContentControl比ContentPresenter多了一个Foreground属性。这样我们可以方便的改变按钮的前景色,无论他是文本还是Path。下面我们开始制作OnMouseOver时的动画,尝试改变前景色。打开States面板,选择MouseOver,点击显示时间线图标,将黄色时间线拖拽到0.3秒处。
设置前景色为#FFDE9107
点击停止录制按钮,暂时暂停动画的录制。
设置Cursor为hand,然后点击开始录制按钮,启动动画录制。
此时MouseOver状态下动画面板应该是这样的
接下来我们定义压下效果,首先右击States面板中的MouseOver,选择Copt State To然后选择Pressed
点击Preesed状态,在对象面板中选中ContentControl
设置ContentControl的RenderTransform.TranslateX 为1 ,RenderTransform.TranslateY为1
此时Pressed状态下动画面板应该是这样的
转载于:https://www.cnblogs.com/iChina/archive/2011/11/26/2264661.html
Expression Blend学习5控件-TextButton相关推荐
- Expression Blend学习5控件
Expression Blend ButtonStyle- TextButton 本章以TextButton为例,讲解如何最简单,最快速的制作一个专业的TextButton. 对于这个TextButt ...
- Expression Blend学习动画基础
原文:Expression Blend学习动画基础 什么是动画(Animation)? 动画就是时间+换面的组合,画面跟着时间变化.最常见的是flash的动画,还有GIF动态图片. 动画的主要元素 时 ...
- Delphi 7学习开发控件
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 我们知道 ...
- 二,控件学习--2.控件基类-QObject
学习计划 功能作用 1.对象名称,属性. 应用场景 进行控件样式的分组管理 from PyQt5.Qt import *class Window(QWidget):def __init__(self) ...
- Expression Blend 学习视频下载
微软Expression Blend功能介绍Microsoft Expression Blend-一个全新的,全功能的职业设计工具,用于创造基于Microsoft Windows平台的丰富.复杂的应用 ...
- 学习UpdatePanel控件
UpdatePanel控件的使用 ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果.其中的UpdatePanel就是设置页面中异 步局部更新区域,它必须依赖 ...
- C#学习--dotnetbar控件学习
1.添加控件 首先添加选项卡-〉添加项->选项卡不切换直接选择浏览到DevComponents.DotNetBar2.dll-〉这时控件会自动呈选中状态-〉点击任意一个会全选所有控件-〉确定
- LibUIDK 学习------CSkinListCtrl控件消息响应事件
2021年修改了控件继承自CUIWnd,因此对于CSkinListCtrl控件的消息响应如下: ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1) ON_ ...
- C++桌面应用开发(Qt学习)——控件(2)ItemWidget
① QListWidget 列表容器 QListWidgetItem * item 一行内容 //利用listWidget写一行诗QListWidgetItem *item = new QListWi ...
- [C#学习] BindingNavigator控件
一 概述 BindingNavigator控件的用户界面 (UI) 由一系列 ToolStrip 按钮.文本框和静态文本元素组成,用于进行大多数常见的数据相关操作(如添加数据.删除数据和在数据中导航) ...
最新文章
- 使用ServiceStackRedis链接Redis简介
- 谁是谷歌想要的人才:智商高不见得总是好员工
- 计算机转集成光学,最新集成光学考试总结.docx
- android opencv 识别文字_基于SpringBoot的车牌识别系统(附项目地址)
- [C++] socket - 3 [线程简单例子 代码]
- Ajax联手SOA打造企业级应用
- UVa11988 Broken Keyboard(练习链表使用)
- Qt中修改应用程序和标题栏的图标
- 修改数据库参数oracle,Oracle 修改数据库基本参数
- linux gfs原理,Linux GFS 配置方法及注意事项
- 豆瓣镜像源的使用与pip包版本控制
- 【Kafka】Kafka如何开启SSL 控制台消费与生产 代码消费与生产
- 我是一名服装公司的老板娘,年收入千万上下
- .net core中使用autofac进行IOC
- 2020-12-06 高等数学:常用积分公式
- 使用tesseract-ocr进行文字识别
- 从MOSSE到KCF,再从KCF到C-COT,再从C-COT到ECO梳理
- 安徽大学计算机专硕学几年,安徽大学专业硕士学制几年
- matlab仿真的实例,MATLAB仿真实例
- 分布式计算原理之分布式协调与同步(1)——分布式选举
热门文章
- ImageLoader的简单分析
- Flink+Hudi 构架湖仓一体化解决方案
- Flink 中的应用部署:当前状态与新应用模式
- 这场直播,我们把 Apache 顶级项目盛会搬来了!
- Tomcat无法启动:Server Tomcat v8.5 Server at localhost failed to start
- 厉害了!为了干掉 HTTP ,Spring团队又开源 nohttp 项目!
- 调用dll 返回65535_一种通用DLL劫持技术研究
- python-gui-pyqt5的使用方法-3--自定义信号的初识
- H3C交换机设备使用QOS策略方式实现报文过滤
- mysql 5.6的安装