// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Maui.Controls; using Microsoft.Maui.Handlers; using SkiaSharp; namespace Microsoft.Maui.Platform.Linux.Handlers; /// /// Handler for BoxView on Linux. /// public partial class BoxViewHandler : ViewHandler { public static IPropertyMapper Mapper = new PropertyMapper(ViewMapper) { [nameof(BoxView.Color)] = MapColor, [nameof(BoxView.CornerRadius)] = MapCornerRadius, [nameof(IView.Background)] = MapBackground, ["BackgroundColor"] = MapBackgroundColor, }; public BoxViewHandler() : base(Mapper) { } protected override SkiaBoxView CreatePlatformView() { return new SkiaBoxView(); } public static void MapColor(BoxViewHandler handler, BoxView boxView) { if (boxView.Color != null) { handler.PlatformView.Color = boxView.Color; } } public static void MapCornerRadius(BoxViewHandler handler, BoxView boxView) { handler.PlatformView.CornerRadius = boxView.CornerRadius; } public static void MapBackground(BoxViewHandler handler, BoxView boxView) { if (boxView.Background is SolidColorBrush solidBrush && solidBrush.Color != null) { handler.PlatformView.BackgroundColor = solidBrush.Color; handler.PlatformView.Invalidate(); } } public static void MapBackgroundColor(BoxViewHandler handler, BoxView boxView) { if (boxView.BackgroundColor != null) { handler.PlatformView.BackgroundColor = boxView.BackgroundColor; handler.PlatformView.Invalidate(); } } }