Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6658291
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Android平台

2018-01-31 21:25:37

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

包装段落
显示一段文字就像显示一行文字一样简单。 只要使文本足够长,以包装成多行:

点击(此处)折叠或打开

  1. public class BaskervillesPage : ContentPage
  2. {
  3.     public BaskervillesPage()
  4.     {
  5.         Content = new Label
  6.         {
  7.             VerticalOptions = LayoutOptions.Center,
  8.             Text =
  9.                 "Mr. Sherlock Holmes, who was usually very late in " +
  10.                 "the mornings, save upon those not infrequent " +
  11.                 "occasions when he was up all night, was seated at " +
  12.                 "the breakfast table. I stood upon the hearth-rug " +
  13.                 "and picked up the stick which our visitor had left " +
  14.                 "behind him the night before. It was a fine, thick " +
  15.                 "piece of wood, bulbous-headed, of the sort which " +
  16.                 "is known as a \u201CPenang lawyer.\u201D Just " +
  17.                 "under the head was a broad silver band, nearly an " +
  18.                 "inch across, \u201CTo James Mortimer, M.R.C.S., " +
  19.                 "from his friends of the C.C.H.,\u201D was engraved " +
  20.                 "upon it, with the date \u201C1884.\u201D It was " +
  21.                 "just such a stick as the old-fashioned family " +
  22.                 "practitioner used to carry\u2014dignified, solid, " +
  23.                 "and reassuring."
  24.         };
  25.        
  26.         Padding = new Thickness(5, Device.OnPlatform(20, 5, 5), 5, 5);
  27.     }
  28. }
注意使用嵌入的Unicode代码打开和关闭“智能引号”(\ u201C和\ u201D)和em破折号(\ u2014)。 Padding已经在页面周围设置了5个单位,以避免文本碰到屏幕的边缘,但VerticalOptions属性也被用来垂直居中页面上的整个段落:

对于这段文字,在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属性之间的深刻差异。




阅读(2673) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~