文本框本质上并不是一个控件,因为它不继承于控件类,然而在WPF中它使用情况和其他控件几乎一样,因此我们仍称它为控件。

文本框控件是WPF中最基础的控件之一,非常实用。它将文字显示到屏幕上,和标签控件一样,但是比标签更简单,占资源更少。普遍的共识是标签用于简短的单行文本(包括图片),而文本框多用于多行文本。标签和文本框各有优点,根据具体情况来使用。

在"Hello, WPF!"一章中,我们已经使用过一个文本框控件,下面,我们来看看文本框最简单的格式:

<span style="font-size:14px;"><Window x:Class="WpfTutorialSamples.Basic_controls.TextBlockSample"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="TextBlockSample" Height="100" Width="200"><Grid><TextBlock>This is a TextBlock</TextBlock></Grid>
</Window></span>

这没什么新鲜的,TextBlock之间的文字其实是Text属性的快捷设置。

下面我们尝试把一段长文字放到文本框,看看它是如何工作的。为了看起来更舒服,加了一个留边空白。

<span style="font-size:14px;"><Window x:Class="WpfTutorialSamples.Basic_controls.TextBlockSample"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="TextBlockSample" Height="100" Width="200"><Grid><TextBlock Margin="10">This is a TextBlock control and it comes with a very long text</TextBlock></Grid>
</Window></span>

处理长字符串

很快就能发现,文本框可以很好的兼容长字符串,但是不会自动换行,需要设置。上面的文本太长,无法在窗口显示完整。

下面就来处理这个问题:

<span style="font-size:14px;"><Window x:Class="WpfTutorialSamples.Basic_controls.TextBlockSample"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="TextBlockSample" Height="200" Width="250"><StackPanel><TextBlock Margin="10" Foreground="Red">This is a TextBlock control<LineBreak />with multiple lines of text.</TextBlock><TextBlock Margin="10" TextTrimming="CharacterEllipsis" Foreground="Green">This is a TextBlock control with text that may not be rendered completely, which will be indicated with an ellipsis.</TextBlock><TextBlock Margin="10" TextWrapping="Wrap" Foreground="Blue">This is a TextBlock control with automatically wrapped text, using the TextWrapping property.</TextBlock></StackPanel>
</Window></span>

上面用了三个文本框,每一个都用不同的颜色,它们用不同的方式处理了文本太长的问题。

红色文本框使用LineBreak标记在指定的位置换行。它给了你绝对的控制权,能做到随时切换到新行。但是很多情况下却不适用。如果用户把窗口拉大,文本仍在原来的位置换行,即使有足够的空间把整个文本一行显示。

绿色文本框使用TextTrimming属性赋值为CharacterEllipsis,当文本无法显示全的时候显示为省略号。这很好的显示了文本很长但是不够显示完整。如果你有很长的文本但是不想显示多行,那么这是一个很好的方法。另外你还可能用到WordEllipsis,它以单词为单元进行省略,而不是以字母,防止一个单词只显示部分。

蓝色文本框使用TextWrapping属性赋值为Wrap,它能让文本自动换行。与第一种手动切换相比,它是完全自动的。它还能随着空间的改变而自动调整。通过拉大或缩小窗口,你会发现自动换行发挥完美。

用文本框处理简单的字符串就讲这么多。下一章我们将探寻文本框的更深一层的功能,如创建各种样式的文本等等。

WPF教程(十四)文本框相关推荐

  1. 【Visual C++】游戏开发笔记四十六 浅墨DirectX教程十四 模板测试与镜面特效专场

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处.   文章链接: http://blog.csdn.net/zhmxy555/article/details/8632184 作者:毛星云( ...

  2. Wix 安装部署教程(十四) -- 多语言安装包之用户许可协议

    Wix 安装部署教程(十四) -- 多语言安装包之用户许可协议 原文:Wix 安装部署教程(十四) -- 多语言安装包之用户许可协议 在上一篇中,留下了许可协议的问题,目前已经解决.感谢网友武全的指点 ...

  3. akka学习教程(十四) akka分布式实战

    akka系列文章目录 akka学习教程(十四) akka分布式实战 akka学习教程(十三) akka分布式 akka学习教程(十二) Spring与Akka的集成 akka学习教程(十一) akka ...

  4. WPF教程(四)RelativeSource属性(转)

    WPF教程(四)RelativeSource属性 2018年08月13日 15:11:56 yangwenxue1989 阅读数:749 我们进行Bingding时,如果明确知道数据源的Name,就能 ...

  5. wpf 带图像的文本框_注意WPF中带有图像PNG的DPI-图像比例奇怪或模糊

    wpf 带图像的文本框 Is that enough TLAs (Three Letter Acronyms) in the title there? I continue to mentally d ...

  6. Cesium教程(十四):简易三维模型的可视化

    Cesium教程(十四):简易三维模型的可视化 效果预览 1.高效三维数据格式:3D Tiles 3D Tiles是Cesium提出的处理三维地理大数据的数据格式,目前已是OGC数据标准之一,并在We ...

  7. html5文本框里插图片文字,word应用教程:在文本框内插入图片

    在使用word编辑电子文档时,可以通过插入功能插入图片,那么怎样才能在wps文字文档从插入可以任意移动的图片呢,那么下面就由学习啦小编给大家分享下word在文本框内插入图片的技巧,希望能帮助到您. w ...

  8. nCode:DesignLife案例教程十四

    nCode:DesignLife 案例十四--高温SN疲劳分析 14.1 案例文件 14.2 目的 14.3 设计问题 14.4 Overview of the Hybrid Load Provide ...

  9. WebGL简易教程(十四):阴影

    文章目录 1. 概述 2. 示例 2.1. 着色器部分 2.1.1. 帧缓存着色器 2.1.2. 颜色缓存着色器 2.2. 绘制部分 2.2.1. 整体结构 2.2.2. 具体改动 2.2.2.1. ...

  10. 【STM32】HAL库 STM32CubeMX教程十四---SPI

    前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在我们的HAL库中,对硬件SPI函数做了很好的集成,使得之前SPI几百行代码,在HAL库中,只需 ...

最新文章

  1. ARP(Accounting Resource Planning)项目感想
  2. ansible文档官网
  3. python isnumeric函数用法_Python中isnumeric()方法的使用简介
  4. funm--矩阵的函数运算
  5. 长这么大了,一件事也没做好过
  6. 程序员过关斩将--重复的请求并不好过滤
  7. 二进制权值计算 lsb_2020年二级计算机基础知识备考(第二章)
  8. Vue + Spring Boot 项目实战(二):使用 CLI 搭建 Vue.js 项目
  9. 电信业的100个随想
  10. 使用动态SQL获取具有非空字段的自定义表结构
  11. ArcGIS Pro 性能诊断
  12. 压缩感知高斯测量矩阵matlab,基于压缩感知的测量矩阵研究
  13. 为什么我的儿子不沉迷游戏?一位游戏策划家长的分享
  14. 最简单的Go Dockerfile编写姿势
  15. 计算机类论文答辩常见问题——软件开发类题目
  16. vue 打造携程网平台界面实战
  17. 电脑上的文件夹都是显示英文怎么快速翻译成中文
  18. 帆软当表格无数据时不显示表格并显示无数据
  19. 【UE4从零开始 027】插槽 Slot
  20. 如何在.NET程序崩溃时自动创建Dump?

热门文章

  1. 台达屏幕modbus通信解析
  2. VGGNet 论文精度,并解析 VGG-16 网络模型结构
  3. 【LG手机】【刷机救砖教程】【F240】刷了recovery不慎手机变砖
  4. swft 语言 java_Swift语言中与C/C++和Java不同的语法(一)
  5. 四川大学计算机学院优秀毕业论文,我院获得四川大学2019届本科优秀毕业论文(设计)17篇...
  6. Android 省份城市搜索,Android 实现省份城市的选择,并获取城市编号
  7. Ps--钢笔工具(1)
  8. cocos creator组件化开发 对比 cocos studio +cocos2dx开发
  9. c#连接Java后台,处理返回的数据
  10. 编写一个歌词随音乐播放滚动的播放器