次の方法で共有


ColorToBlackOrWhiteConverter

ColorToBlackOrWhiteConverter は、ユーザーが受け取った ColorColors.Black または Colors.White のモノクロ値に変換できる一方向のコンバーターです。

Convert メソッドは、指定された value が暗いと見なされるかどうかに基づいて、指定された valueColors.Black または Colors.White に変換して返します。 Color は、赤、緑、青の各コンポーネントの平均が 127 未満である場合に考慮されます。

この ConvertBack メソッドはサポートされていません。

BaseConverter のプロパティ

基底クラス public abstract class BaseConverter には、次のプロパティが実装されています。

プロパティ 説明
DefaultConvertReturnValue IValueConverter.Convert(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値です。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。
DefaultConvertBackReturnValue IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値です。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。

ICommunityToolkitValueConverter のプロパティ

public interface ICommunityToolkitValueConverter には次のプロパティが実装されています。

プロパティ タイプ 説明
DefaultConvertReturnValue object? IValueConverter.Convert(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値です。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。
DefaultConvertBackReturnValue object? IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値です。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。

構文

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>

ColorToBlackOrWhiteConverter の使用

ColorToBlackOrWhiteConverter は、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.ColorToBlackOrWhiteConverterPage">

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

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

</ContentPage>

C#

ColorToBlackOrWhiteConverter は、C# では次のように使用できます。

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

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

        Content = label;
    }
}

C# Markup

この CommunityToolkit.Maui.Markup パッケージを使うと、より簡潔な方法でこのコンバーターを C# で使用できます。

using CommunityToolkit.Maui.Markup;

class ColorToBlackOrWhiteConverterPage : ContentPage
{
    public ColorToBlackOrWhiteConverterPage()
    {
        Content = new Label { Text = "The Text is showing in monochrome" }
            .Bind(
                Label.TextColorProperty,
                static (ViewModel vm) => vm.AppTextColor,
                converter: new ColorToBlackOrWhiteConverter());
    }
}

このコンバーターの動作の例は、.NET MAUI Community Toolkit サンプル アプリケーションで確認できます。

API

ColorToBlackOrWhiteConverter のソース コードは、.NET MAUI Community Toolkit の GitHub リポジトリにあります。