Files
maui-linux/Handlers/BoxViewHandler.cs

64 lines
1.9 KiB
C#
Raw Normal View History

// 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;
/// <summary>
/// Handler for BoxView on Linux.
/// </summary>
public partial class BoxViewHandler : ViewHandler<BoxView, SkiaBoxView>
{
public static IPropertyMapper<BoxView, BoxViewHandler> Mapper =
new PropertyMapper<BoxView, BoxViewHandler>(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)
{
2026-01-16 05:31:09 +00:00
handler.PlatformView.Color = boxView.Color;
}
}
public static void MapCornerRadius(BoxViewHandler handler, BoxView boxView)
{
2026-01-16 05:31:09 +00:00
handler.PlatformView.CornerRadius = boxView.CornerRadius;
}
public static void MapBackground(BoxViewHandler handler, BoxView boxView)
{
if (boxView.Background is SolidColorBrush solidBrush && solidBrush.Color != null)
{
2026-01-17 03:10:29 +00:00
handler.PlatformView.BackgroundColor = solidBrush.Color;
handler.PlatformView.Invalidate();
}
}
public static void MapBackgroundColor(BoxViewHandler handler, BoxView boxView)
{
if (boxView.BackgroundColor != null)
{
2026-01-17 03:10:29 +00:00
handler.PlatformView.BackgroundColor = boxView.BackgroundColor;
handler.PlatformView.Invalidate();
}
}
}