TextBlock和Label都是用来显示少量数据的。好多文章对Label存在的描述都是它允许使用"快速获取"。"快速获取"就是允许你用Alt加上其它的按键快速和UI界面的某个控件交互,比如你可以用ALT加上O键来点击一个OK按钮。

TextBlock直接继承于FrameworkElement,而Label继承于ContentControl。这样看来,Label可以做这样的事情:

1.可以定义一个控件模板(通过Template属性)

2.可以显示出string以外的其他信息(通过Content属性)

3.为Label内容添加一个DataItemplate(通过ContentTemplate属性)

4.做一些FrameworkElement元素不能做的事情

下边是一个TextBlock和Label的继承关系图

当Label不可用的时候它的Text显示为灰色,但是TextBlock不会

上例中UserName为TextBlock,Password为Label。

当Label禁用时候它的Content变为灰色的原因是因为Label的默认模板中有一个触发器,当 Label禁用的时候它会设置Content的颜色。

如果要改变Label禁用时的样式可以在这改变。

Label比TextBlock更加复杂

以上说了Label相当于TextBlock的优势,下面说一下TextBlock的优势

加载Label时比TextBlock需要耗费更多的时间,不仅仅是Label相对于直接继承于FrameElement的TextBlock有了更多层次的继承,它的visual tree更加复杂。

下面的图片告诉你是当你创建一个Label的时候后台都做了什么事情。

TextBlock的visual tree不包含任何子元素,而Label却复杂的多。它有一个border属性,最后通过一个TextBlock来显示内容。这样看来label其实就是一个个性化的TextBlock。。

(原文http://joshsmithonwpf.wordpress.com/2007/07/04/differences-between-label-and-textblock/)

转自:
区别TextBlock和Label
http://joshsmithonwpf.wordpress.com/2007/07/04/differences-between-label-and-textblock/

(转)区别TextBlock和Label的更多相关文章

  1. [转]在WPF中区别TextBlock和Label

    TextBlock和Label都是用来显示少量数据的.好多文章对Label存在的描述都是它允许使用"快速获取"."快速获取"就是允许你用Alt加上其它的按键快速 ...

  2. WPF学习二:TextBlock和Label的区别

    TextBlock和Label都是用来显示少量数据的.好多文章对Label存在的描述都是它允许使用"快速获取"."快速获取"就是允许你用Alt加上其它的按键快速 ...

  3. 【C#/WPF】TextBlock/TextBox/Label编辑文字的问题

    标题有点描述不清,就当是为了方便自己用时易于搜索到. 总之需求是:显示用户信息(文字)时,允许用户编辑自己的信息. 效果图如下: 点击[编辑]按钮前: 点击[编辑]按钮后,允许编辑: 别吐槽为甚性别还 ...

  4. break和continue的区别以及标签label的使用

    break表示直接跳出当前循环,break只能运用于switch--case语句以及循环之中 continue则表示跳出当次循环,继续执行下一次循环 label标签则可以选择break,或者conti ...

  5. Label & TextBlock

    I always thought it was odd that WPF has both TextBlock and Label.  They both are responsible for di ...

  6. Html的label和span的区别

    从最终效果来看,label与span标签显示方式及作用都一样的但由于label中有for属性的存在,也有着决定性的不同 for属性将label和表单进行配对 label标签通常是写在表单(form)内 ...

  7. WPF快速入门系列(3)——深入解析WPF事件机制

    一.引言 WPF除了创建了一个新的依赖属性系统之外,还用更高级的路由事件功能替换了普通的.NET事件. 路由事件是具有更强传播能力的事件——它可以在元素树上向上冒泡和向下隧道传播,并且沿着传播路径被事 ...

  8. WPF性能优化经验总结

    WPF性能优化一.Rendering Tier 1. 根据硬件配置的不同,WPF采用不同的Rendering Tier做渲染.下列情况请特别注意,因为在这些情况下,即使是处于Rendering Tie ...

  9. 【WPF学习】第十九章 控件类

    WPF窗口充满了各种元素,但这些元素中只有一部分是控件.在WPF领域,控件通常被描述为与用户交互的元素——能接收焦点并接受键盘或鼠标输入的元素.明显的例子包括文本框和按钮.然而,这个区别有时有些模糊. ...

随机推荐

  1. dotnet core项目的nuget存储路径

    Where's the package location in aspnet core For project.json the nuget directory is in the user prof ...

  2. #define学习

    C语言中数据有常量和变量,其中定义常量主要有两种方法,这里主要学习#define定义常量的方法. 1.#define定义数字宏常量 例子如下: 1 2 3 4 5 6 7 8 9 10 #includ ...

  3. 用 Flask 来写个轻博客 (5) — (M)VC_SQLAlchemy 的 CRUD 详解

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 SQLAlchemy 的 CRUD Create 增添数据 ...

  4. 【webpack】webpack之postcss-loader的基本使用---【巷子】

    一.postcss-loader简介 postcss-loader 用来对.css 文件进行处理,并添加在 style-loader 和 css-loader 之后.通过一个额外的 postcss 方 ...

  5. fedora 25重新安装引导

    引导区被其他系统给覆盖了,重新安装引导 grub2-install /dev/sdb GRUB_SAVEDEFAULT=true BIOS grub2-mkconfig -o /boot/grub2/ ...

  6. 开发效率优化之Git分布式版本控制系统(一)

    阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将先从Git分布式版本控制系统来阐述开发效率优化 一,企业 ...

  7. bzoj [POI2015]Myjnie

    [POI2015]Myjnie Time Limit: 40 Sec Memory Limit: 256 MBSec Special Judge Description 有n家洗车店从左往右排成一排, ...

  8. Apache Solr远程命令执行

    简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http G ...

  9. hbuilder模拟器端口

    模拟器 | 端口 夜神安卓模拟器夜神安卓模拟器     62001 逍遥安卓模拟器逍遥安卓模拟器     21503 BlueStacks(蓝叠安卓模拟器)BlueStacks(蓝叠安卓模拟器)    ...

  10. JNI 在Android Studio利用NDK编译运行一个简单的c库

    NDK开发,其实是为了项目需要调用底层的一些C/C++的一些东西:另外就是为了效率更加高些.如果你在Eclipse+ADT下开发过NDK就能体会到要么是配置NDK还要下载Cygwin,配置Cygwin ...