Commit Graph

221 Commits

Author SHA1 Message Date
chinboy 9af427fc41 refactor(MarqueeLabel): migrate MarqueeLabel module to Avalonia 12 2026-04-29 14:18:13 +08:00
chinboy 8b0f93c534 refactor(CheckBox): migrate CheckBox module to Avalonia 12 2026-04-29 14:12:46 +08:00
chinboy 525a8f570a refactor(Breadcrumb): migrate Breadcrumb module to Avalonia 12 2026-04-29 13:57:12 +08:00
chinboy a04a8e7a7c refactor(AdornerLayer): migrate AdornerLayer module to Avalonia 12 and update dependency path with axaml-aware analysis 2026-04-29 13:39:58 +08:00
chinboy 42fb2b04ce add migration path doc 2026-04-29 13:05:16 +08:00
chinboy 5420c04ed6 refactor(ScrollViewer): migrate ScrollViewer module to Avalonia 12 and add base-class scanning rule to migration skill 2026-04-29 10:51:05 +08:00
chinboy 6eab83e8fe refactor(TextBlock): migrate TextBlock module to Avalonia 12 and add migration tracking doc 2026-04-29 10:18:54 +08:00
chinboy 29475a640d feat(NavMenu): implement NavMenu and NavMenuItem controls with token system and TextBlock refinements 2026-04-29 10:02:07 +08:00
chinboy 7712789e8c fix(Avalonia12): correct factual errors and expand migration skill to 51 categories
Verified all API changes against Avalonia 12 source code. Fixed 5 factual errors
(PlacementMode not removed, VisualRoot is protected internal, MathUtilities.Clamp
still exists, IInputRoot is [PrivateApi] not removed, BindingPlugins is internal
not removed). Added 15 new breaking change categories including internalized APIs,
renamed members, window decoration redesign, dispatcher changes, and obsolete
member removals. Updated all 5 reference files with corrected information.
2026-04-29 09:15:39 +08:00
chinboy adff3f6472 feat(Avalonia12): Complete migration skill and comprehensive breaking changes documentation
Add comprehensive Avalonia 12 migration support with 36+ breaking change categories:

**Migration Skill (.agents/skills/migrate-to-avalonia12/)**
- SKILL.md: Main skill definition with 36+ breaking change categories
- references/code-level-analysis.md: Code-level analysis from Avalonia 11.3.14 → 12.0.0
- references/reflection-extensions-pattern.md: AOT-safe reflection pattern documentation
- references/atomui-migration-guide.md: AtomUI-specific migration guidance
- references/migration-examples.md: Before/after code examples
- references/avalonia12-breaking-changes.md: Complete reference table
- references/missed-breaking-changes.md: Recently discovered breaking changes
- references/scanning-results.md: Comprehensive code scanning results

**Breaking Changes Covered (36+ categories)**
1-11: Core Framework (binding system, focus events, TopLevel API, etc.)
12-14: Data & Clipboard (IDataObject → IAsyncDataTransfer, DoDragDrop, DataFormats)
15-17: Text & Rendering (constructor parameter order, access keys, fonts)
18-25: Platform-Specific (Android, iOS, Browser, Tizen, Diagnostics, xUnit, NUnit)
26-36: API Changes (Screen, ResourcesChangedEventArgs, Gesture events, WindowState,
       Data validation, Extension methods, ReflectionExtensions pattern, PlacementMode,
       IInputRoot removal, Internal API extraction, ReflectionExtensions for internal members)

**Code Changes**
- Add FormattedTextSource and InlinesTextSource for text formatting
- Add TopLevelUtils helper for desktop scaling
- Update focus event handlers to use FocusChangedEventArgs
- Update TopLevel API usage (TopLevel.GetTopLevel instead of VisualRoot)
- Update text formatting constructors with new parameter order
- Update clipboard operations with SetTextAsync extension
- Update ToolTipService for TopLevel API
- Update NavMenu and TextBlock controls for Avalonia 12

**Documentation**
- docs/AVALONIA12_MIGRATION.md: Migration guide and checklist
- Comprehensive scanning results showing 95% migration completion
- 2 pending items identified: IInputRoot removal, PlacementMode removal

**Key Features**
- AOT-safe reflection patterns with [DynamicDependency] attributes
- Lazy<T> caching for reflection info
- Comprehensive detection of all 36+ breaking changes
- Platform-aware migration guidance
- Auto-fixable vs manual intervention matrix
2026-04-29 08:35:43 +08:00
CHINBOY 5cf6893e08 The AtomUI kernel has completed basic adaptation for Avalonia V12. 2026-04-28 18:25:30 +08:00
chinboy 34d525a885 fix(Drawer): optimize dialog size handling by replacing style configuration with token bindings 2026-04-22 10:08:06 +08:00
chinboy d0f2470eeb fix(Space): optimize spacing handling by applying token bindings instead of styles 2026-04-22 09:26:58 +08:00
chinboy 4020ab36e3 fix(AvatarGroup, CompactSpace, Space): optimize collection handling by removing unnecessary list creation 2026-04-22 08:24:25 +08:00
chinboy cc9665e781 fix(SpinIndicator): add CustomIndicatorSize property and update related styles 2026-04-21 21:08:28 +08:00
chinboy b8fb9cd056 fix(NavMenu): optimize item retrieval by avoiding unnecessary list conversion 2026-04-21 18:38:23 +08:00
chinboy 7980b70319 fix: simplify visibility subscription logic by introducing SubscribeAncestorIsVisible method 2026-04-21 17:59:30 +08:00
chinboy a002397dcc fix(LineEdit): enhance right content bindings and improve layout efficiency 2026-04-21 16:51:45 +08:00
chinboy 7b0d636e50 fix(AddOnDecoratedBox): implement status foreground and icon brush properties to enhance visual feedback 2026-04-21 13:52:29 +08:00
chinboy 79305e7122 fix(BaseTabStrip, CardTabStrip, BaseTabControl, CardTabControl): refactor binding management to eliminate memory leaks and improve performance 2026-04-21 13:52:29 +08:00
chinboy a47fd6e097 fix(OverlayDialogHeader): ensure disposables are properly disposed and reset on visual tree attachment/detachment 2026-04-21 13:52:29 +08:00
chinboy b7fb6c6740 fix(WindowTitleBar): ensure disposables are properly disposed and reset on visual tree attachment/detachment 2026-04-21 13:52:29 +08:00
chinboy 31eff3e495 fix(MemoryLeakPatterns): update documentation to clarify static constructor subscription patterns and their impact on memory management 2026-04-21 13:52:29 +08:00
chinboy 0069f95f81 fix(AddOnDecoratedBox): add Underlined pseudo-class and update style selectors to prevent memory leaks 2026-04-21 13:52:29 +08:00
chinboy 4809883503 fix(GradientColorSlider): replace global Property.Changed.Subscribe with instance-level GetObservable and remove redundant subscription 2026-04-21 13:52:29 +08:00
chinboy 49165bf572 fix(TimePickerPresenter): replace global Property.Changed.Subscribe with instance-level GetObservable to fix LightweightSubject memory leak 2026-04-21 13:52:29 +08:00
chinboy 614832839e fix(DatePickerPresenter): replace global Property.Changed.Subscribe with instance-level GetObservable to fix LightweightSubject memory leak 2026-04-21 13:52:29 +08:00
chinboy b32fd8f8ee fix(FlyoutStateHelper): replace global Property.Changed.Subscribe with instance-level GetObservable to fix LightweightSubject memory leak 2026-04-21 13:52:29 +08:00
chinboy 61f33a6869 docs: update Transitions refactoring plan - all 76 controls complete (76/76) 2026-04-20 15:25:27 +08:00
chinboy a51e00988c docs: mark Batch 4 Part C controls as completed in table (70/76) 2026-04-20 14:27:10 +08:00
chinboy 672c1673da docs: update Transitions refactoring plan - Batch 4 Part C complete (68/76) 2026-04-20 13:57:51 +08:00
chinboy 9ef731e46b docs: mark Batch 3 controls as completed in table 2026-04-20 10:50:55 +08:00
chinboy acd6e444b7 docs: update Transitions refactoring plan - Batch 3 complete (53/76) 2026-04-20 10:47:17 +08:00
chinboy d29cfa2154 refactor(Spin): migrate AbstractSpin transitions to XAML theme 2026-04-19 22:39:30 +08:00
chinboy 8a694ba36a refactor(ProgressBar): migrate AbstractProgressBar transitions to XAML theme 2026-04-19 22:37:21 +08:00
chinboy cb129f5d4f fix(Switch): migrate SwitchKnob transitions to XAML and fix animation on pointer release
- Move SwitchKnob transitions from C# code to XAML theme using style selector
- Remove ConfigureTransitions, OnLoaded/OnUnloaded lifecycle management
- Fix Switch animation not smoothly transitioning back to circle on pointer release by deferring KnobSize update
- Move PixelPointTransition and RectTransition to Animations/Transitions directory
- Update TransitionsRefactoringPlan.md progress tracking
2026-04-19 22:15:45 +08:00
chinboy f9c8ffb4ce refactor: migrate AbstractScrollViewer Transitions to XAML theme 2026-04-19 20:08:20 +08:00
chinboy 4484f8f9d0 refactor: migrate AbstractScrollBarThumb Transitions to XAML theme 2026-04-19 20:02:50 +08:00
chinboy 9d68863ab0 docs: add Transitions refactoring plan 2026-04-19 19:54:56 +08:00
chinboy d640f2c332 refactor(AddOnDecoratedBox): optimize input control theme structure for performance
Remove code-behind theme classes, consolidate theme definitions into ResourceDictionary format,
add TransitionProvider and SharedTokenResourceValue infrastructure, and remove redundant styles.
2026-04-19 15:51:21 +08:00
chinboy 50ac96478e fix: Improve layout form configuration by adding proper disposal of PropertyChanged subscriptions 2026-04-18 17:59:46 +08:00
chinboy ef5baea0f1 fix: Change IList<double>? to IReadOnlyList<double>? for strokeDashArray in multiple files 2026-04-18 09:55:52 +08:00
chinboy 4f134f3592 fix: Change ButtonTheme.DashedStyle to IReadOnlyList to prevent modification 2026-04-18 09:28:54 +08:00
chinboy 968ffaad13 fix: Ensure proper disposal of CancellationTokenSource in AbstractSpinIndicator, SwitchKnob, and WaveSpiritDecorator 2026-04-18 09:09:01 +08:00
chinboy ce7bc9cf1a fix: AbstractMarqueeLabel 统一 Cancel + Dispose 模式 2026-04-18 08:59:05 +08:00
chinboy 27295dd934 fix: ColorPickerHelpers.CreateBitmapFromPixelData 修正 XML doc,更新文档删除 4.2 2026-04-18 08:49:44 +08:00
chinboy 562e3bf3b3 fix: AbstractQRCode/PreviewImageSource/AbstractImagePreviewer Bitmap 释放,更新文档
- AbstractQRCode: SetupQRCode 加 Value 空值守卫,oldBitmap?.Dispose(),Bitmap? 可空,switch expression 替换 TryParse,移除 using static System.Enum
- PreviewImageSource: 实现 IDisposable
- AbstractImagePreviewer: HandleSourceChanged 替换 EffectiveSources 时 Dispose 旧列表
2026-04-18 08:41:53 +08:00
chinboy 0cebcc8c3d fix: Badge Adorner CTS 补加 Dispose,新增 OnDetachedFromVisualTree 清理,更新文档删除 P4 2026-04-18 00:23:56 +08:00
chinboy 6ba0b2696a fix: FileUploadScheduler CancelUploadAsync 补加 CTS Dispose,更新文档删除 P11 2026-04-18 00:17:36 +08:00
chinboy d73bcce17c docs: 删除已修复条目(6.1 Watermark/6.2 Timer/P8 Space),更新 4.1/4.5/4.6 问题描述 2026-04-18 00:15:55 +08:00