Expression Blend学习5控件

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状态下动画面板应该是这样的

时间: 2024-07-28 15:05:04

Expression Blend学习5控件的相关文章

Expression Blend学习四控件

Expression Blend制作自定义按钮 1.从Blend工具箱中添加一个Button,按住shift,将尺寸调整为125*125; 2.右键点击此按钮,选择Edit control parts(template)>Edit a copy... 3.在弹出的Create style resource对话框中,修改新按钮样式的名称 4.在左侧的Object and timeline面板中选中ContentPresenter元素,按Ctrl+X将此标记临时保存到内存中 5.选中Chrome,按

Delphi 7学习开发控件(继承TGraphicControl只画一条线)

我们知道使用Delphi快速开发,很大的一方面就是其强大的VCL控件,另外丰富的第三方控件也使得Delphi程序员更加快速的开发出所需要的程序.在此不特别介绍一些概念,只记录自己学习开发控件的步骤.假设我们要开发一个画直线的控件,那么我们从下面开始做:1.菜单栏→Component→New Component,在弹出的对话框中按照提示添加: Ancestor type 父类:TGraphicControl  [Controls]Class Name 类名:TLineToPalette Page

cocostudio学习(UIScrollView控件内部子控件的可视化问题)

cocostudio学习(UIScrollView控件内部子控件的可视化问题) 本文内容也是本人学习过程中与COCOSTUDIO开发高手Nutty的对话记录. googleman  10:57:07 Nutty先生好!按照您的指导,在使用UIScrollView时,先尽量避免使用内部子控件的删除/移动/添等操作.于是,在强调用户选择的是其中内部哪一个子项时我使用了在其前面显示一个'框'(UIImageView)的方法.于是,在初期,仅有一个框框出默认选择的内部子项(也是UIImageView).

Delphi 7学习开发控件

我们知道使用Delphi快速开发,很大的一方面就是其强大的VCL控件,另外丰富的第三方控件也使得Delphi程序员更加快速的开发出所需要的程序.在此不特别介绍一些概念,只记录自己学习开发控件的步骤.假设我们要开发一个画直线的控件,那么我们从下面开始做:1.菜单栏→Component→New Component,在弹出的对话框中按照提示添加: Ancestor type 父类:TGraphicControl  [Controls]Class Name 类名:TLineToPalette Page

自行学习XAML控件后的简单想法(作业一)

由于自身专业水平的欠佳,我对于XAML控件的学习并不深刻,只在简单了解过后产生了一二想法,也许十分荒谬,就减省地谈谈.以下五种控件,是我在学习后,并不十分看好或有所疑虑的. Canves 在浏览XAML Controls Gallery上各种控件的简单介绍时,这个控件引起我注意,它通过坐标轴控制每个内容的分布,是一个用于布局的控件. 首先,这个Canvas控件的展示样例图,让我想起了很多应用中的画面,例如:                              然而在我查询相关资料后,我发现

Blend 多文本控件介绍

原文:Blend 多文本控件介绍 多文本控件 RichTextBox FlowDocumentScrollViewer FlowDocumentPageViewer FlowDocumentReader 按效果来看 FlowDocumentScrollViewer FlowDocumentPageViewer FlowDocumentReader 都是只读 提供了很多花里胡哨的功能 而 RichTextBox 可以编辑 删除 原文地址:https://www.cnblogs.com/lonely

android 学习 Spinner控件的使用

今晚看了下spinner控件的使用,结合博客大神的教程,一个小demo 一,SpinnerActivity private Spinner spinner; private ArrayAdapter<String> adapter; private List<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

Android Studio 学习 - 基本控件的使用;Intent初学

Android Studio学习第三天. 今天主要学习 1. RadioButton.CheckBox.RatingBar.SeekBar等基础控件的使用. 结合Delphi中相类似的控件,在这些基本控件的理解和使用上暂时没碰到太多的问题.对比之下,各种监听事件与Delphi中也相差无几. 2. 使用Intent切换Activity (1)在不同的Activity之间跳转,首先要新建一个Activity. (2)创建一个新的Layout布局文件,布局文件的命名首字母用小写字母(Android S

2015 IOS 学习笔记 控 件 ——蓝懿教育

UIlabel  *l1   蓝懿教育 text font 设置字体 设置居中  l1 setTextAlignment:NSTextAlignmentCenter 设置行数  numberOfLines //    lf.font = [UIFont fontWithName:@"字体名称" size:18]; //设置居中 [l setTextAlignment:NSTextAlignmentCenter]; UIbutton 内容  setTitle    UI button