Udostępnij za pośrednictwem


ColorToColorForTextConverter

Jest ColorToColorForTextConverter to jeden ze sposobów konwerter, który umożliwia użytkownikom konwertowanie przychodzącego Color na wartość monochromatyczną albo Colors.White Colors.Black na podstawie tego, czy jest określany jako ciemny dla ludzkiego oka.

Metoda Convert zwraca podaną value wartość przekonwertowaną na Colors.Black wartość lub Colors.White na podstawie tego, czy podana wartość value jest uważana za ciemną dla ludzkiego oka, czy nie.

Metoda nie jest obsługiwana ConvertBack .

Właściwości obiektu BaseConverter

Następujące właściwości są implementowane w klasie bazowej: public abstract class BaseConverter

Właściwości opis
DefaultConvertReturnValue Wartość domyślna, która ma być zwracana, gdy IValueConverter.Convert(object?, Type, object?, CultureInfo?) zgłasza wartość Exception. Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na truewartość .
DefaultConvertBackReturnValue Wartość domyślna, która ma być zwracana, gdy IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) zgłasza wartość Exception. Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na truewartość .

Właściwości ICommunityToolkitValueConverter

Następujące właściwości są implementowane w pliku public interface ICommunityToolkitValueConverter:

Właściwość Type Opis
DefaultConvertReturnValue object? Wartość domyślna, która ma być zwracana, gdy IValueConverter.Convert(object?, Type, object?, CultureInfo?) zgłasza wartość Exception. Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na truewartość .
DefaultConvertBackReturnValue object? Wartość domyślna, która ma być zwracana, gdy IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) zgłasza wartość Exception. Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na truewartość .

Składnia

XAML

Dołączanie przestrzeni nazw XAML

Aby można było używać zestawu narzędzi w języku XAML, należy dodać następujące xmlns elementy do strony lub widoku:

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

W związku z tym następujące elementy:

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

Zostanie zmodyfikowana tak, aby zawierała następujące xmlns elementy:

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

Korzystanie z elementu ColorToColorForTextConverter

Można ColorToColorForTextConverter go użyć w następujący sposób w języku 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#

Można ColorToColorForTextConverter go użyć w następujący sposób w języku 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;
    }
}

Znaczniki języka C#

Nasz CommunityToolkit.Maui.Markup pakiet zapewnia znacznie bardziej zwięzły sposób używania tego konwertera w języku 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);
    }
}

Przykłady

Przykład tego konwertera można znaleźć w aplikacji przykładowej zestawu narzędzi .NET MAUI Community Toolkit.

interfejs API

Kod źródłowy można ColorToColorForTextConverter znaleźć w repozytorium GitHub zestawu narzędzi .NET MAUI Community Toolkit.