Fix handlers to match decompiled production code

- ButtonHandler: Removed MapText/TextColor/Font (not in production), fixed namespace
- LabelHandler: Added CharacterSpacing/LayoutAlignment/FormattedText, ConnectHandler gesture logic
- EntryHandler: Added CharacterSpacing/ClearButtonVisibility/VerticalTextAlignment
- EditorHandler: Created from decompiled (was missing)
- SliderHandler: Fixed namespace, added ConnectHandler init calls
- SwitchHandler: Added OffTrackColor logic, fixed namespace
- CheckBoxHandler: Added VerticalLayoutAlignment/HorizontalLayoutAlignment
- ProgressBarHandler: Added ConnectHandler/DisconnectHandler IsVisible tracking
- PickerHandler: Created from decompiled with collection changed tracking
- ActivityIndicatorHandler: Removed IsEnabled/BackgroundColor (not in production)
- All handlers now use namespace Microsoft.Maui.Platform.Linux.Handlers
- All handlers have proper null checks on PlatformView
- Updated MERGE_TRACKING.md with accurate status

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-01 13:51:12 -05:00
parent fd9043f749
commit 6f0d10935c
26 changed files with 2502 additions and 1594 deletions

View File

@@ -25,6 +25,7 @@ public class SkiaLabel : SkiaView
typeof(string),
typeof(SkiaLabel),
"",
BindingMode.TwoWay,
propertyChanged: (b, o, n) => ((SkiaLabel)b).OnTextChanged());
/// <summary>
@@ -36,6 +37,7 @@ public class SkiaLabel : SkiaView
typeof(IList<SkiaTextSpan>),
typeof(SkiaLabel),
null,
BindingMode.TwoWay,
propertyChanged: (b, o, n) => ((SkiaLabel)b).OnTextChanged());
/// <summary>
@@ -47,6 +49,7 @@ public class SkiaLabel : SkiaView
typeof(SKColor),
typeof(SkiaLabel),
SKColors.Black,
BindingMode.TwoWay,
propertyChanged: (b, o, n) => ((SkiaLabel)b).Invalidate());
/// <summary>
@@ -58,6 +61,7 @@ public class SkiaLabel : SkiaView
typeof(string),
typeof(SkiaLabel),
"Sans",
BindingMode.TwoWay,
propertyChanged: (b, o, n) => ((SkiaLabel)b).OnFontChanged());
/// <summary>
@@ -69,6 +73,7 @@ public class SkiaLabel : SkiaView
typeof(float),
typeof(SkiaLabel),
14f,
BindingMode.TwoWay,
propertyChanged: (b, o, n) => ((SkiaLabel)b).OnFontChanged());
/// <summary>
@@ -80,6 +85,7 @@ public class SkiaLabel : SkiaView
typeof(bool),
typeof(SkiaLabel),
false,
BindingMode.TwoWay,
propertyChanged: (b, o, n) => ((SkiaLabel)b).OnFontChanged());
/// <summary>
@@ -91,6 +97,7 @@ public class SkiaLabel : SkiaView
typeof(bool),
typeof(SkiaLabel),
false,
BindingMode.TwoWay,
propertyChanged: (b, o, n) => ((SkiaLabel)b).OnFontChanged());
/// <summary>
@@ -102,6 +109,7 @@ public class SkiaLabel : SkiaView
typeof(bool),
typeof(SkiaLabel),
false,
BindingMode.TwoWay,
propertyChanged: (b, o, n) => ((SkiaLabel)b).Invalidate());
/// <summary>
@@ -113,6 +121,7 @@ public class SkiaLabel : SkiaView
typeof(bool),
typeof(SkiaLabel),
false,
BindingMode.TwoWay,
propertyChanged: (b, o, n) => ((SkiaLabel)b).Invalidate());
/// <summary>
@@ -124,6 +133,7 @@ public class SkiaLabel : SkiaView
typeof(TextAlignment),
typeof(SkiaLabel),
TextAlignment.Start,
BindingMode.TwoWay,
propertyChanged: (b, o, n) => ((SkiaLabel)b).Invalidate());
/// <summary>
@@ -419,7 +429,7 @@ public class SkiaLabel : SkiaView
{
if (System.IO.File.Exists(path))
{
_cachedTypeface = SKTypeface.FromFile(path);
_cachedTypeface = SKTypeface.FromFile(path, 0);
if (_cachedTypeface != null) return _cachedTypeface;
}
}