Udostępnij za pośrednictwem


ColorToGrayScaleColorConverter

Jest ColorToGrayScaleColorConverter to jeden ze sposobów konwerter, który umożliwia użytkownikom konwertowanie danych przychodzących Color na skala szarości Color.

Metoda Convert zwraca podaną value wartość przekonwertowaną na skala szarości Color.

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>

Używanie elementu ColorToGrayScaleColorConverter

Można ColorToGrayScaleColorConverter 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.ColorToGrayScaleColorConverterPage">

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

    <Label Text="The Text is showing in grayscale"
           TextColor="{Binding AppTextColor, Converter={StaticResource ColorToGrayScaleColorConverter}}" />

</ContentPage>

C#

Można ColorToGrayScaleColorConverter go użyć w następujący sposób w języku C#:

class ColorToGrayScaleColorConverterPage : ContentPage
{
    public ColorToGrayScaleColorConverterPage()
    {
        var label = new Label { Text = "The Text is showing in grayscale" };

        label.SetBinding(
            Label.TextColorProperty,
            new Binding(
                static (ViewModels vm) => vm.AppTextColor,
                converter: new ColorToGrayScaleColorConverter()));

        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 ColorToGrayScaleColorConverterPage : ContentPage
{
    public ColorToGrayScaleColorConverterPage()
    {
        Content = new Label { Text = "The Text is showing in grayscale" }
            .Bind(
                Label.TextColorProperty,
                static (ViewModel vm) => vm.AppTextColor,
                converter: new ColorToGrayScaleColorConverter());
    }
}

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 ColorToGrayScaleColorConverter znaleźć w repozytorium GitHub zestawu narzędzi .NET MAUI Community Toolkit.