默认情况下,Label使用由每个平台定义的系统字体,但Label也定义了可用于更改此字体的多个属性。 标签是与这些字体相关的属性只有两个类之一; 按钮是另一个。
使您可以更改此字体的属性是:
- 字符串类型的FontFamily
- 类型double的FontSize
- FontAttributes类型的FontAttributes,包含三个成员的枚举:无,粗体,和斜体
这些使用最难的是FontFamily。 从理论上讲,你可以将它设置为“Times Roman”这样的字体系列名称,但只有在特定平台上支持该特定字体系列时才能使用。 由于这个原因,你可能会使用FontFamily与Device.OnPlatform连接,你需要知道每个平台支持的字体名称。
FontSize属性也有点尴尬。 你需要一个粗略的表示字体高度的数字,但是你应该使用什么数字? 这是一个棘手的问题,因此,当选择一个合适的字体大小的工具可以使用时,它将被降级到第5章“处理大小”。
然而在那之前,Device类有一个名为GetNamedSize的静态方法。 该方法需要NamedSize枚举的成员:
- Default
- Micro
- Small
- Medium
- Large
正如你将在本章后面看到的,NamedSize.Medium成员不一定返回与NamedSize.Default相同的大小。
FontAttributes是三个与字体相关的属性中使用最少的。 您可以指定粗体或斜体或两者,因为这个小代码片段(从上一章的Greetings程序改编而来)演示:
点击(此处)折叠或打开
-
class GreetingsPage : ContentPage
-
{
-
public GreetingsPage()
-
{
-
Content = new Label
-
{
-
Text = "Greetings, Xamarin.Forms!",
-
HorizontalOptions = LayoutOptions.Center,
-
VerticalOptions = LayoutOptions.Center,
-
FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label)),
-
FontAttributes = FontAttributes.Bold | FontAttributes.Italic
-
};
-
}
- }

Windows 10 Mobile屏幕不够宽,无法在单行显示文本。