Partager via


ColorToColorForTextConverter

Le ColorToColorForTextConverter est un convertisseur unidirectionnel qui permet aux utilisateurs de convertir un Color entrant en une valeur monochrome de Colors.Black ou Colors.White selon qu’il est déterminé comme étant sombre pour l’œil humain.

La méthode Convert retourne la valeur value fournie convertie en Colors.Black ou en Colors.White selon que la value fournie est considérée comme sombre ou non.

La méthode ConvertBack n’est pas prise en charge.

Propriétés BaseConverter

Les propriétés suivantes sont implémentées dans la classe de base, public abstract class BaseConverter :

Propriété Description
DefaultConvertReturnValue Valeur par défaut à renvoyer lorsque IValueConverter.Convert(object?, Type, object?, CultureInfo?) lève une Exception. Cette valeur est utilisée lorsque les options CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters sont définies sur true.
DefaultConvertBackReturnValue Valeur par défaut à retourner lorsque IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) lève une Exception. Cette valeur est utilisée lorsque les options CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters sont définies sur true.

Propriétés ICommunityToolkitValueConverter

Les propriétés suivantes sont implémentées dans le public interface ICommunityToolkitValueConverter :

Propriété Type Description
DefaultConvertReturnValue object? Valeur par défaut à renvoyer lorsque IValueConverter.Convert(object?, Type, object?, CultureInfo?) lève une Exception. Cette valeur est utilisée lorsque les options CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters sont définies sur true.
DefaultConvertBackReturnValue object? Valeur par défaut à retourner lorsque IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) lève une Exception. Cette valeur est utilisée lorsque les options CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters sont définies sur true.

Syntaxe

XAML

Y compris l’espace de noms XAML

Pour utiliser le kit de ressources dans XAML, le xmlns suivant doit être ajouté à votre page ou à votre affichage :

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

Il en résulte ce qui suit :

<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>

Serait modifié pour inclure le xmlns de la manière suivante :

<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>

Utilisation de ColorToColorForTextConverter

Le ColorToColorForTextConverter peut être utilisé de la manière suivante dans 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.ColorToColorForTextConverterPage">

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

    <Label Text="The Text is showing in an optimum color against the background"
           TextColor="{Binding Source={RelativeSource AncestorType={x:Type ContentPage}}, Path=BackgroundColor, Converter={StaticResource ColorToColorForTextConverter}}" />

</ContentPage>

C#

Le ColorToColorForTextConverter peut être utilisé de la manière suivante dans C# :

class ColorToColorForTextConverterPage : ContentPage
{
    public ColorToColorForTextConverterPage()
    {
        var label = new Label { Text = "The Text is showing in an optimum color against the background" };

        label.SetBinding(
            Label.TextColorProperty,
            new Binding(
                static (ContentPage page) => page.BackgroundColor,
                converter: new ColorToColorForTextConverter(),
                source: this));

        Content = label;
    }
}

Balisage C#

Notre package CommunityToolkit.Maui.Markup offre une manière beaucoup plus concise d’utiliser ce convertisseur en C#.

using CommunityToolkit.Maui.Markup;

class ColorToColorForTextConverterPage : ContentPage
{
    public ColorToColorForTextConverterPage()
    {
        Content = new Label { Text = "The Text is showing in an optimum color against the background" }
            .Bind(
                Label.TextColorProperty,
                static (ContentPage page) => page.BackgroundColor,
                converter: new ColorToColorForTextConverter(),
                source: this);
    }
}

Exemples

Vous pouvez trouver un exemple de ce convertisseur en action dans l’Exemple d’application du Kit d’outils de la communauté .NET MAUI.

API

Vous pouvez trouver le code source deColorToColorForTextConverter sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.