Стили текста Xamarin.FormsXamarin.Forms Text Styles

Загрузить образец загрузить примерDownload Sample Download the sample

Выделение текста в Xamarin.FormsStyling text in Xamarin.Forms

Стили позволяют настроить внешний вид меток, записи и редакторов.Styles can be used to adjust the appearance of labels, entries, and editors. Стили могут быть определен один раз и использовать несколько представлений, но стиль может использоваться только с представлениями одного типа.Styles can be defined once and used by many views, but a style can only be used with views of one type. Стили можно предоставить Key и применить выборочное использование с конкретным элементом управления Style свойство.Styles can be given a Key and applied selectively using a specific control's Style property.

Встроенные стилиBuilt-In Styles

Платформа Xamarin.Forms включает несколько встроенные стили для распространенных сценариев:Xamarin.Forms includes several built-in styles for common scenarios:

  • BodyStyle
  • CaptionStyle
  • ListItemDetailTextStyle
  • ListItemTextStyle
  • SubtitleStyle
  • TitleStyle

Для применения одного из встроенных стилей используйте DynamicResource расширения разметки для задания стиля:To apply one of the built-in styles, use the DynamicResource markup extension to specify the style:

<Label Text="I'm a Title" Style="{DynamicResource TitleStyle}"/>

В C#, встроенные стили выбираются из Device.Styles:In C#, built-in styles are selected from Device.Styles:

label.Style = Device.Styles.TitleStyle;

Пользовательские стилиCustom Styles

Стили состоят из методов задания и методов задания состоят из свойств и значений свойств будет указано значение.Styles consist of setters and setters consist of properties and the values the properties will be set to.

В C# пользовательского стиля для метки с нашего красного текста размера 30 будет определяться следующим образом:In C#, a custom style for a label with red text of size 30 would be defined as follows:

var LabelStyle = new Style (typeof(Label)) {
    Setters = {
        new Setter {Property = Label.TextColorProperty, Value = Color.Red},
        new Setter {Property = Label.FontSizeProperty, Value = 30}
    }
};

var label = new Label { Text = "Check out my style.", Style = LabelStyle };

В XAML:In XAML:

<ContentPage.Resources>
    <ResourceDictionary>
        <Style x:Key="LabelStyle" TargetType="Label">
            <Setter Property="TextColor" Value="Red"/>
            <Setter Property="FontSize" Value="30"/>
        </Style>
    </ResourceDictionary>
</ContentPage.Resources>

<ContentPage.Content>
    <StackLayout>
        <Label Text="Check out my style." Style="{StaticResource LabelStyle}" />
    </StackLayout>
</ContentPage.Content>

Обратите внимание, что ресурсы (включая все стили) определяются в ContentPage.Resources, который является одноуровневым элементом знакомую ContentPage.Content элемент.Note that resources (including all styles) are defined within ContentPage.Resources, which is a sibling of the more familiar ContentPage.Content element.

Применение стилейApplying Styles

После создания стиля, он может применяться к любой соответствующей представление его TargetType.Once a style has been created, it can be applied to any view matching its TargetType.

В XAML, пользовательские стили применяются к представлениям, указав их Style свойство с StaticResource расширение разметки, нужный стиль ссылки:In XAML, custom styles are applied to views by supplying their Style property with a StaticResource markup extension referencing the desired style:

<Label Text="Check out my style." Style="{StaticResource LabelStyle}" />

В C#, стили можно либо применяться непосредственно к представлению или добавить и получать на странице ResourceDictionary.In C#, styles can either be applied directly to a view or added to and retrieved from a page's ResourceDictionary. Чтобы добавить напрямую:To add directly:

var label = new Label { Text = "Check out my style.", Style = LabelStyle };

Чтобы добавить и получить на странице ResourceDictionary:To add and retrieve from the page's ResourceDictionary:

this.Resources.Add ("LabelStyle", LabelStyle);
label.Style = (Style)Resources["LabelStyle"];

Встроенные стили применяются по-разному, так как они должны отвечать на параметры специальных возможностей.Built-in styles are applied differently, because they need to respond to accessibility settings. Для применения встроенных стилей в XAML, DynamicResource используется расширение разметки:To apply built-in styles in XAML, the DynamicResource markup extension is used:

<Label Text="I'm a Title" Style="{DynamicResource TitleStyle}"/>

В C#, встроенные стили выбираются из Device.Styles:In C#, built-in styles are selected from Device.Styles:

label.Style = Device.Styles.TitleStyle;

Специальные возможностиAccessibility

Встроенные стили, которые облегчают учитывают настройки специальных возможностей.The built-in styles exist to make it easier to respect accessibility preferences. При использовании любой из встроенных стилей, размеры шрифтов автоматически увеличивается, если пользователь устанавливает их настройки специальных возможностей, соответствующим образом.When using any of the built-in styles, font sizes will automatically increase if a user sets their accessibility preferences accordingly.

Рассмотрим следующий пример той же страницы представлений, для которого установлен с помощью встроенных стилей Проговорить включенных и отключенных:Consider the following example of the same page of views styled with the built-in styles with accessibility settings enabled and disabled:

Отключено:Disabled:

Включено:Enabled:

Для обеспечения доступности, убедитесь, что встроенные стили основой для используются все стили, относящихся к тексту в приложении, и что вы используете стили согласованно.To ensure accessibility, make sure that built-in styles are used as the basis for any text-related styles within your app, and that you are using styles consistently. См. в разделе стили Дополнительные сведения о расширении и работы со стилями, в целом.See Styles for more details on extending and working with styles in general.