(转)区别TextBlock和Label
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的更多相关文章
- [转]在WPF中区别TextBlock和Label
TextBlock和Label都是用来显示少量数据的.好多文章对Label存在的描述都是它允许使用"快速获取"."快速获取"就是允许你用Alt加上其它的按键快速 ...
- WPF学习二:TextBlock和Label的区别
TextBlock和Label都是用来显示少量数据的.好多文章对Label存在的描述都是它允许使用"快速获取"."快速获取"就是允许你用Alt加上其它的按键快速 ...
- 【C#/WPF】TextBlock/TextBox/Label编辑文字的问题
标题有点描述不清,就当是为了方便自己用时易于搜索到. 总之需求是:显示用户信息(文字)时,允许用户编辑自己的信息. 效果图如下: 点击[编辑]按钮前: 点击[编辑]按钮后,允许编辑: 别吐槽为甚性别还 ...
- break和continue的区别以及标签label的使用
break表示直接跳出当前循环,break只能运用于switch--case语句以及循环之中 continue则表示跳出当次循环,继续执行下一次循环 label标签则可以选择break,或者conti ...
- Label & TextBlock
I always thought it was odd that WPF has both TextBlock and Label. They both are responsible for di ...
- Html的label和span的区别
从最终效果来看,label与span标签显示方式及作用都一样的但由于label中有for属性的存在,也有着决定性的不同 for属性将label和表单进行配对 label标签通常是写在表单(form)内 ...
- WPF快速入门系列(3)——深入解析WPF事件机制
一.引言 WPF除了创建了一个新的依赖属性系统之外,还用更高级的路由事件功能替换了普通的.NET事件. 路由事件是具有更强传播能力的事件——它可以在元素树上向上冒泡和向下隧道传播,并且沿着传播路径被事 ...
- WPF性能优化经验总结
WPF性能优化一.Rendering Tier 1. 根据硬件配置的不同,WPF采用不同的Rendering Tier做渲染.下列情况请特别注意,因为在这些情况下,即使是处于Rendering Tie ...
- 【WPF学习】第十九章 控件类
WPF窗口充满了各种元素,但这些元素中只有一部分是控件.在WPF领域,控件通常被描述为与用户交互的元素——能接收焦点并接受键盘或鼠标输入的元素.明显的例子包括文本框和按钮.然而,这个区别有时有些模糊. ...
随机推荐
- Android 架构师技能图谱
# Android 架构师技能图谱 ## 架构与设计 - 设计模式 - 重构 - 技术选型 - 特性 - 可用性 - 性能 - 包大小 - 方法数 - 文档 - 技术支持 - UI架构模式 - MVC ...
- strcpy函数学习
strcpy的功能如下: 原型声明:char *strcpy(char* dest, const char *src); 头文件:#include <string.h> 和 #includ ...
- upc组队赛2 Hakase and Nano【思维博弈】
Hakase and Nano 题目描述 Hakase and Nano are playing an ancient pebble game (pebble is a kind of rock). ...
- Django Paginator分页器
如何实现在django中实现分页效果,我使用的是django自带的分页器paginator具体是使用办法是这样的首先引用from django.core.paginator import Pagina ...
- js系列教程11-json、ajax(XMLHttpRequest)、comet、SSE、WebSocket全解
js系列教程11-json.ajax(XMLHttpRequest).comet.SSE.WebSocket全解:https://blog.csdn.net/luanpeng825485697/art ...
- 19-vim-分屏命令-01-末行命令扩展
1.末行命令扩展 命令 英文 功能 :e空格. edit 打开内置文件浏览器,浏览当前目录下的文件,不用退出vim,可以在vim中上下浏览目录和文件 :n 文件名 new 新建文件 :w 文件名 wr ...
- es7 async 前置依赖
https://stackoverflow.com/questions/33527653/babel-6-regeneratorruntime-is-not-defined 移动端 px2rem-lo ...
- 算法竞赛模板 KMP
KMP算法图解: ① 首先,字符串“BBC ABCDAB ABCDABCDABDE”的第一个字符与搜索词“ABCDABD”的第一个字符,进行比较.因为B与A不匹配,所以搜索词后移一位. ② 因为B与A ...
- 头文件 <sys/un.h>
struct sockaddr_un server_sockaddr ; struct sockaddr_un cli_sockaddr ;
- vector 有点麻烦啊 能简单点么?
#include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> ...