第三章:深入文本(1)

简介:

尽管多么复杂的图形用户界面已经成为现实,文本仍然是大多数应用程序的支柱。 然而,文本可能是最复杂的视觉对象之一,因为它带有数百年印刷术的包袱。 主要的考虑是文本必须是可读的。 这就要求文字不要太小,文字不能太大,否则会在屏幕上占据很大的空间。
由于这些原因,在随后的几章中继续讨论文本的主题,最着名的是第5章“处理大小”。Xamarin.Forms程序员经常在样式中定义字体特性,这是第12章的主题。
包装段落
显示一段文字就像显示一行文字一样简单。 只要使文本足够长,以包装成多行:

点击(此处)折叠或打开

public class BaskervillesPage : ContentPage
{
    public BaskervillesPage()
    {
        Content = new Label
        {
            VerticalOptions = LayoutOptions.Center,
            Text =
                "Mr. Sherlock Holmes, who was usually very late in " +
                "the mornings, save upon those not infrequent " +
                "occasions when he was up all night, was seated at " +
                "the breakfast table. I stood upon the hearth-rug " +
                "and picked up the stick which our visitor had left " +
                "behind him the night before. It was a fine, thick " +
                "piece of wood, bulbous-headed, of the sort which " +
                "is known as a \u201CPenang lawyer.\u201D Just " +
                "under the head was a broad silver band, nearly an " +
                "inch across, \u201CTo James Mortimer, M.R.C.S., " +
                "from his friends of the C.C.H.,\u201D was engraved " +
                "upon it, with the date \u201C1884.\u201D It was " +
                "just such a stick as the old-fashioned family " +
                "practitioner used to carry\u2014dignified, solid, " +
                "and reassuring."
        };
       
        Padding = new Thickness(5, Device.OnPlatform(20, 5, 5), 5, 5);
    }
}

注意使用嵌入的Unicode代码打开和关闭“智能引号”( u201C和 u201D)和em破折号( u2014)。 Padding已经在页面周围设置了5个单位,以避免文本碰到屏幕的边缘,但VerticalOptions属性也被用来垂直居中页面上的整个段落:
2018_01_31_211243

对于这段文字,在iOS或iOS上将HorizontalOptions设置为“开始”,“居中”或“结束”
Windows Phone会将整个段落水平移动到左侧,中间或右侧。 (对于多行文本,Android的工作方式稍有不同)移动只是轻微的,因为段落的宽度是最长文本行的宽度。 由于单词换行是由页面宽度(减去填充)控制的,因此该段落的宽度可能会略少于页面上可用的宽度。
但是设置Label的HorizontalTextAlignment属性会产生更深远的影响:设置此属性会影响各行的对齐。 TextAlignment.Center的设置将以段落的所有行为中心,TextAlignment.Right将它们全部对齐在右侧。 除了HorizontalTextAlignment之外,还可以使用HorizontalOptions将整个段落稍稍移动到中间或右侧。
但是,在将VerticalOptions设置为“开始”,“居中”或“结束”之后,VerticalTextAlignment的任何设置都不起作用。
Label定义了一个LineBreakMode属性,如果您不希望文本换行或选择截断选项,则可以将其设置为LineBreakModeenumeration的成员。
没有属性可以为段落指定第一行缩进,但可以使用各种类型的空格字符(如em空格(Unicode u2003))添加自己的一个。
您可以通过使用一个或多个换行符( n)结尾每个段落,以单个标签视图显示多个段落。但是,更好的方法是使用从Environment.NewLine静态属性返回的字符串。此属性在iOS和Android设备上返回“ n”,在所有Windows和Windows Phone设备上返回“ r n”。但不是嵌入换行符来创建段落,而是为每个段落使用一个单独的Label视图更有意义,如第4章“滚动堆栈”所示。
Label类有很多格式化的灵活性。正如你很快会看到的,由Labelallow定义的属性指定字体大小或粗体或斜体文本,还可以在单个段落中指定不同的文本格式。
标签也允许指定颜色,并且一些颜色的实验将展示HorizontalOptions和VerticalOptions属性与HorizontalTextAlignment和VerticalTextAlignment属性之间的深刻差异。

目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
【Python机器学习】文本特征提取及文本向量化讲解和实战(图文解释 附源码)
【Python机器学习】文本特征提取及文本向量化讲解和实战(图文解释 附源码)
394 0
|
资源调度
一天掌握latex论文编辑,从标题作者,段落,数学公式,图片,图表,到参考文献全流程
一天掌握latex论文编辑,从标题作者,段落,数学公式,图片,图表,到参考文献全流程
652 0
|
机器学习/深度学习 数据采集 算法
2021-4月Python 机器学习——中文新闻文本标题分类
2021-4月Python 机器学习——中文新闻文本标题分类
285 0
|
机器学习/深度学习 自然语言处理 算法
2021-4月Python 机器学习——中文新闻文本标题分类(简单容易版)
2021-4月Python 机器学习——中文新闻文本标题分类(简单容易版)
394 0
|
前端开发 开发者
Web前端开发笔记——第二章 HTML语言 第三节 文本格式化标签
Web前端开发笔记——第二章 HTML语言 第三节 文本格式化标签
Web前端开发笔记——第二章 HTML语言 第三节 文本格式化标签
|
自然语言处理 算法
如何用3行代码简单实现文本情感分析
如何用3行代码简单实现文本情感分析
366 0
|
机器学习/深度学习 存储 自然语言处理
文本特征工程——下篇
文本特征工程——下篇
211 0
文本特征工程——下篇
|
机器学习/深度学习 自然语言处理 并行计算
长文本表示学习概述
摘要: "**如果**你愿意一层一层的剥开我的心·································**那么**你会坐牢的我跟你说"。自然语言就是这么神奇,句子中的长距离特征对于理解语义也非常关键,本文基于Tranformer、RNN、CNN、TCN分别概述近期学界对长句表示学习的诸多方法。 ## 1.长文本表示学习挑战 ​ NLP任务的特点和图像有极大的不同,上图展示了
2172 0

相关课程

更多
下一篇
无影云桌面