设备样式
使用Xamarin.Forms中内置的动态样式
- PDF用于离线使用
-
- 下载PDF
示例代码: -
- 动态样式
- 使用样式
相关文章: -
- 文字样式
- XAML标记扩展
相关API: -
- 资源字典
- 样式
- 二传手
让我们知道你对此的感受
最后更新:2016年2月
Xamarin.Forms在Device.Styles类中包含六种动态样式,称为设备样式。
该设备样式:
-
BodyStyle
-
CaptionStyle
-
ListItemDetailTextStyle
-
ListItemTextStyle
-
SubtitleStyle
-
TitleStyle
所有六种样式只能应用于
Label
实例。例如,一个
Label
显示段落的正文可能会将其
Style
属性设置为
BodyStyle
。
以下代码示例演示如何在XAML页面中使用设备样式:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Styles.DeviceStylesPage" Title="Device" Icon="xaml.png">
<ContentPage.Resources>
<ResourceDictionary>
<Style x:Key="myBodyStyle" TargetType="Label"
BaseResourceKey="BodyStyle">
<Setter Property="TextColor" Value="Accent" />
</Style>
</ResourceDictionary>
</ContentPage.Resources>
<ContentPage.Content>
<StackLayout Padding="0,20,0,0">
<Label Text="Title style"
Style="{DynamicResource TitleStyle}" />
<Label Text="Subtitle text style"
Style="{DynamicResource SubtitleTextStyle}" />
<Label Text="Body style"
Style="{DynamicResource BodyStyle}" />
<Label Text="Caption style"
Style="{DynamicResource CaptionStyle}" />
<Label Text="List item detail text style"
Style="{DynamicResource ListItemDetailTextStyle}" />
<Label Text="List item text style"
Style="{DynamicResource ListItemTextStyle}" />
<Label Text="No style" />
<Label Text="My body style"
Style="{StaticResource myBodyStyle}" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
设备样式必须使用
DynamicResource
标记扩展名。通过更改文本大小的辅助功能设置,可以在iOS中看到样式的动态特性。设备样式的外观在每个平台上是不同的,如下面的屏幕截图所示:
设备的样式也可以通过设置导出
BaseResourceKey
属性键名称为设备样式。在上面的代码示例中,
myBodyStyle
继承
BodyStyle
并设置重音文字颜色。有关动态样式继承的更多信息,请参阅动态样式继承。
以下代码示例演示了C#中的等效页面:
public class DeviceStylesPageCS : ContentPage
{
public DeviceStylesPageCS ()
{
var myBodyStyle = new Style (typeof(Label)) {
BaseResourceKey = Device.Styles.BodyStyleKey,
Setters = {
new Setter {
Property = Label.TextColorProperty,
Value = Color.Accent
}
}
};
Title = "Device";
Icon = "csharp.png";
Padding = new Thickness (0, 20, 0, 0);
Content = new StackLayout {
Children = {
new Label { Text = "Title style", Style = Device.Styles.TitleStyle },
new Label { Text = "Subtitle style", Style = Device.Styles.SubtitleStyle },
new Label { Text = "Body style", Style = Device.Styles.BodyStyle },
new Label { Text = "Caption style", Style = Device.Styles.CaptionStyle },
new Label { Text = "List item detail text style",
Style = Device.Styles.ListItemDetailTextStyle },
new Label { Text = "List item text style", Style = Device.Styles.ListItemTextStyle },
new Label { Text = "No style" },
new Label { Text = "My body style", Style = myBodyStyle }
}
};
}
}
Style
每个
Label
实例的属性设置为类中的适当属性
Devices.Styles
。
无障碍
该设备样式尊重无障碍偏好,从而可访问性偏好在每个平台上改变字体大小会发生变化。因此,为了支持可访问的文本,请确保将设备样式用作应用程序中任何文本样式的基础。
以下屏幕截图演示了每个平台上的设备样式,字体大小最小:
以下屏幕截图演示了每个平台上的设备风格,最大可访问的字体大小:
概要
Xamarin.Forms在类中包含六种动态样式,称为设备样式
Devices.Styles
。所有六种样式只能应用于
Label
实例。