Поделиться через


ColorToHexRgbStringConverter

Это ColorToHexRgbStringConverter преобразователь, позволяющий пользователям преобразовывать привязку значений Color в шестнадцатеричный string эквивалент RGB в формате: #redgreenblue где красный, зеленый и синий будут иметь значение от 0 до FF (например , #FF0000 для Colors.Red.

Метод Convert возвращает предоставленный Colorvalue преобразованный в шестнадцатеричный string эквивалент RGB.

Метод ConvertBack возвращает шестнадцатеричное stringvalue значение RGB, преобразованное в объект Color.

Свойства BaseConverter

Следующие свойства реализуются в базовом классе: public abstract class BaseConverter

Свойство Description
DefaultConvertReturnValue Значение по умолчанию, возвращаемое при IValueConverter.Convert(object?, Type, object?, CultureInfo?) вызове Exception. Это значение используется, когда сообщество набор средств. Для Maui.Options.ShouldSuppressExceptionsInConverters задано значение true.
DefaultConvertBackReturnValue Значение по умолчанию, возвращаемое при IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) вызове Exception. Это значение используется, когда сообщество набор средств. Для Maui.Options.ShouldSuppressExceptionsInConverters задано значение true.

Свойства ICommunity набор средств ValueConverter

В следующих свойствах реализованы public interface ICommunityToolkitValueConverterследующие свойства:

Свойство Type Описание
DefaultConvertReturnValue object? Значение по умолчанию, возвращаемое при IValueConverter.Convert(object?, Type, object?, CultureInfo?) вызове Exception. Это значение используется, когда сообщество набор средств. Для Maui.Options.ShouldSuppressExceptionsInConverters задано значение true.
DefaultConvertBackReturnValue object? Значение по умолчанию, возвращаемое при IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) вызове Exception. Это значение используется, когда сообщество набор средств. Для Maui.Options.ShouldSuppressExceptionsInConverters задано значение true.

Синтаксис

В следующих примерах показано, как использовать ColorToHexRgbStringConverter для отображения шестнадцатеричной строки RGB определенной Colorшестнадцатеричной строки.

XAML

Включение пространства имен XAML

Чтобы использовать набор средств в XAML, xmlns необходимо добавить на страницу или представление следующее:

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

Поэтому следующее:

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">

</ContentPage>

Будет изменено, чтобы включить следующее xmlns :

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">

</ContentPage>

Использование ColorToHexRgbStringConverter

Его ColorToHexRgbStringConverter можно использовать следующим образом в XAML:

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
             x:Class="CommunityToolkit.Maui.Sample.Pages.Converters.ColorToHexRgbStringConverterPage">

    <ContentPage.Resources>
        <ResourceDictionary>
            <toolkit:ColorToHexRgbStringConverter x:Key="ColorToHexRgbStringConverter" />
        </ResourceDictionary>
    </ContentPage.Resources>

    <VerticalStackLayout>
        <Label Text="My favourite Color is:" />

        <Label Text="{Binding MyFavoriteColor, Converter={StaticResource ColorToHexRgbStringConverter}}" />
    </VerticalStackLayout>

</ContentPage>

C#

Его ColorToHexRgbStringConverter можно использовать следующим образом в C#:

class ColorToHexRgbStringConverterPage : ContentPage
{
    public ColorToHexRgbStringConverterPage()
    {
        var label = new Label();

	label.SetBinding(
		Label.TextProperty,
		new Binding(
			nameof(ViewModel.MyFavoriteColor),
			converter: new ColorToHexRgbStringConverter()));

	Content = new VerticalStackLayout
	{
		Children =
		{
			new Label { Text = "My favourite Color is:" },
			label
		}
	};
    }
}

Разметка C#

Наш CommunityToolkit.Maui.Markup пакет предоставляет гораздо более краткий способ использования этого преобразователя в C#.

using CommunityToolkit.Maui.Markup;

class ColorToHexRgbStringConverterPage : ContentPage
{
    public ColorToHexRgbStringConverterPage()
    {
        Content = new VerticalStackLayout
        {
            Children =
            {
                new Label()
                    .Text("My favourite Color is:"),
                new Label()
                    .Bind(
                        Label.TextProperty,
                        static (ViewModel vm) => vm.MyFavoriteColor,
                        converter: new ColorToHexRgbStringConverter())
            }
        };
    }
}

Примеры

Пример этого преобразователя можно найти в действии в сообществе .NET MAUI набор средств пример приложения.

API

Исходный код ColorToHexRgbStringConverter можно найти в репозитории сообщества .NET MAUI набор средств GitHub.