| File: Handlers\Image\ImageHandler.cs | Web Access |
| Project: src\src\Core\src\Core.csproj (Microsoft.Maui) |
using System; using System.Threading; #if __IOS__ || MACCATALYST using PlatformView = UIKit.UIImageView; #elif MONOANDROID using PlatformView = Android.Widget.ImageView; #elif WINDOWS using PlatformView = Microsoft.UI.Xaml.Controls.Image; #elif TIZEN using PlatformView = Tizen.UIExtensions.NUI.Image; #elif (NETSTANDARD || !PLATFORM) || (NET6_0_OR_GREATER && !IOS && !ANDROID && !TIZEN) using PlatformView = System.Object; #endif namespace Microsoft.Maui.Handlers { public partial class ImageHandler : IImageHandler { public static IPropertyMapper<IImage, IImageHandler> Mapper = new PropertyMapper<IImage, IImageHandler>(ViewHandler.ViewMapper) { #if __ANDROID__ || WINDOWS || TIZEN [nameof(IImage.Background)] = MapBackground, #endif #if WINDOWS [nameof(IImage.Height)] = MapHeight, [nameof(IImage.Width)] = MapWidth, #endif [nameof(IImage.Aspect)] = MapAspect, [nameof(IImage.IsAnimationPlaying)] = MapIsAnimationPlaying, [nameof(IImage.Source)] = MapSource, }; public static CommandMapper<IImage, IImageHandler> CommandMapper = new(ViewHandler.ViewCommandMapper) { }; ImageSourcePartLoader? _imageSourcePartLoader; public virtual ImageSourcePartLoader SourceLoader => _imageSourcePartLoader ??= new ImageSourcePartLoader(new ImageImageSourcePartSetter(this)); public ImageHandler() : base(Mapper, CommandMapper) { } public ImageHandler(IPropertyMapper? mapper) : base(mapper ?? Mapper, CommandMapper) { } public ImageHandler(IPropertyMapper? mapper, CommandMapper? commandMapper) : base(mapper ?? Mapper, commandMapper ?? CommandMapper) { } // TODO MAUI: Should we remove all shadowing? IImage IImageHandler.VirtualView => VirtualView; PlatformView IImageHandler.PlatformView => PlatformView; partial class ImageImageSourcePartSetter : ImageSourcePartSetter<IImageHandler> { public ImageImageSourcePartSetter(IImageHandler handler) : base(handler) { } } } }