File: Platform\ImageSourcePartSetter.cs
Web Access
Project: src\src\Core\src\Core.csproj (Microsoft.Maui)
using System;
#if __IOS__ || MACCATALYST
using PlatformImage = UIKit.UIImage;
#elif MONOANDROID
using PlatformImage = Android.Graphics.Drawables.Drawable;
#elif WINDOWS
using PlatformImage = Microsoft.UI.Xaml.Media.ImageSource;
#elif TIZEN
using PlatformImage = Microsoft.Maui.Platform.MauiImageSource;
#elif (NETSTANDARD || !PLATFORM) || (NET6_0_OR_GREATER && !IOS && !ANDROID && !TIZEN)
using PlatformImage = System.Object;
#endif
 
namespace Microsoft.Maui.Platform
{
	abstract class ImageSourcePartSetter<T> : IImageSourcePartSetter
		where T : class, IElementHandler
	{
		readonly WeakReference<T> _handler;
 
		public ImageSourcePartSetter(T handler) =>
			_handler = new(handler);
 
		public IImageSourcePart? ImageSourcePart =>
			Handler?.VirtualView as IImageSourcePart ?? Handler?.VirtualView as IImage;
 
		public T? Handler => _handler.GetTargetOrDefault();
 
		IElementHandler? IImageSourcePartSetter.Handler => Handler;
 
		public abstract void SetImageSource(PlatformImage? platformImage);
	}
}