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


ByteArrayToImageSourceConverter

Это ByteArrayToImageSourceConverter преобразователь, позволяющий пользователю преобразовывать входящее значение из массива byte и возвращать значение ImageSource. Затем этот объект можно использовать в качестве Source Image элемента управления.

Метод Convert возвращает предоставленный byte[] value преобразованный в объект ImageSource.

Метод ConvertBack возвращает предоставленный ImageSource value преобразованный в объект byte[].

Свойства BaseConverter

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

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

Свойства ICommunityToolkitValueConverter

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

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

Синтаксис

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>

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

Его ByteArrayToImageSourceConverter можно использовать следующим образом в 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.ByteArrayToImageSourceConverterPage">

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

    <Image Source="{Binding DotNetBotImageByteArray, Mode=OneWay, Converter={StaticResource ByteArrayToImageSourceConverter}}" />

</ContentPage>

C#

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

class ByteArrayToImageSourceConverterPage : ContentPage
{
    public ByteArrayToImageSourceConverterPage()
    {
        var image = new Image();

    image.SetBinding(
        Image.SourceProperty,
        new Binding(
            static (ViewModel vm) => vm.DotNetBotImageByteArray,
            mode: BindingMode.OneWay,
            converter: new ByteArrayToImageSourceConverter()));

        Content = image;
    }
}

Разметка C#

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

using CommunityToolkit.Maui.Markup;

class ByteArrayToImageSourceConverterPage : ContentPage
{
    public ByteArrayToImageSourceConverterPage()
    {
        Content = new Image()
            .Bind(
                Image.SourceProperty,
                static (ViewModel vm) => vm.DotNetBotImageByteArray,
                mode: BindingMode.OneWay,
                converter: new ByteArrayToImageSourceConverter());
    }
}

Примеры

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

API

Исходный код ByteArrayToImageSourceConverter можно найти в репозитории .NET MAUI Community Toolkit GitHub.