字体大小和属性
默认情况下,Label使用由每个平台定义的系统字体,但Label也定义了可用于更改此字体的多个属性。 标签是与这些字体相关的属性只有两个类之一; 按钮是另一个。
使您可以更改此字体的属性是:
字符串类型的FontFamily
类型double的FontSize
FontAttributes类型的FontAttributes,包含三个成员的枚举:无,粗体,和斜体
还有一个字体属性和相应的字体结构,但这是弃用,不应该使用。
这些使用最难的是FontFamily。 从理论上讲,你可以将它设置为“Times Roman”这样的字体系列名称,但只有在特定平台上支持该特定字体系列时才能使用。 由于这个原因,你可能会使用FontFamily与Device.OnPlatform连接,你需要知道每个平台支持的字体名称。
FontSize属性也有点尴尬。 你需要一个粗略的表示字体高度的数字,但是你应该使用什么数字? 这是一个棘手的问题,因此,当选择一个合适的字体大小的工具可以使用时,它将被降级到第5章“处理大小”。
然而在那之前,Device类有一个名为GetNamedSize的静态方法。 该方法需要NamedSize枚举的成员:
Default
Micro
Small
Medium
Large
GetNamedSize还需要使用此字体大小的类的类型,该参数将是typeof(Label)或typeof(Button)。 您也可以使用Label或Button本身的实例而不是Type,但是这个选项通常不太方便。
正如你将在本章后面看到的,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屏幕不够宽,无法在单行显示文本。