Skip to content

Latest commit

 

History

History
341 lines (330 loc) · 256 KB

File metadata and controls

341 lines (330 loc) · 256 KB

WinUI 3 Source Parity

ModernWpf parity work now uses official WPF Fluent as the primary source for stock WPF controls, and WinUI 3 source behavior for existing ModernWpf controls that are not covered by official WPF Fluent.

The adopted synchronization epoch is official winui3/main commit 23a73be03d194ea0ece97da71de98b6b53021b70, latest stable winui3/release/2.3.1 commit a97562621a1d1ea397a38a3f512c9eef99db52d8, and WinUI Gallery main commit b78c440193aab788215888561e45adf72da848cb. The complete reconciliation from the prior detailed-audit pins is recorded in docs/winui3-sync-2026-07-29.md, the finite Preview 2 cutoff record docs/winui3-sync-2026-08-06.md, and the Preview 3 adoption record docs/winui3-sync-2026-08-08-preview3.md, the Preview 4 adoption record docs/winui3-sync-2026-08-08-preview4.md, and the Preview 6 adoption record docs/winui3-sync-2026-08-10-preview6.md.

Earlier detailed family audits retain their exact blob and history evidence at the revisions they reviewed; newly adopted families pin the current milestone cutoff directly. The dated synchronization records close every bounded delta between those family pins and the accepted epoch. The machine-readable authority, including the stable/main/Gallery tracks and every family path mapping, is tools/upstream/upstream-sync.json. A scheduled read-only report compares each adopted epoch target with its moving upstream head and requires every changed file to be mapped, explicitly ignored with a justification, or reported as unmapped action-required drift.

Current audits query the official repository before making latest-source claims. Current repository paths use the post-May-2026 root layout (controls/... rather than src/controls/...); the stable track's leading src/ is normalized by the drift reporter.

Rules

  • Prefer official WPF Fluent implementation behavior for stock WPF controls that are present in PresentationFramework.Fluent.
  • Prefer WinUI 3 implementation behavior for ModernWpf controls that are not covered by official WPF Fluent.
  • Add new controls only in the fixed milestone assigned by docs/roadmap-1.0.md, with its source audit, WPF adaptations, Gallery page, public contracts, and focused coverage landing together.
  • Do not preserve old ModernWpf behavior when it conflicts with the relevant source-backed behavior.
  • Treat guessed ModernWpf implementations as debt, not as a maintenance baseline. When official WPF Fluent or WinUI 3 source exists for an existing control, delete/replace/adapt the guessed implementation as a whole-control parity slice instead of layering small compatibility patches on top of it.
  • Port source behavior directly where WPF has an equivalent model.
  • Where WinUI depends on compositor, popup island, WinRT automation, gamepad, or platform-only services, document the WPF substitution and add tests around the substitute behavior.
  • Keep WinUI 2.8.7 notes only as historical/resource-reference material unless a slice explicitly needs that baseline.

Recent Source-Parity Notes

  • 2026-08-10 ItemsView Preview 7 source port: docs\itemsview-winui3-source-audit.md pins the complete control family to the adopted product cutoff 23a73be03d194ea0ece97da71de98b6b53021b70 and Gallery cutoff b78c440193aab788215888561e45adf72da848cb. The port preserves the current IDL surface, selection/invocation policies, List/SelectionProvider automation, default StackLayout, swappable UniformGrid/LinedFlow layouts, ItemTransitionProvider forwarding, and three-example Gallery shape. WPF ScrollViewer, BringIntoViewOptions, native focus navigation, and a live ScrollContentPresenter cache fallback replace WinUI ScrollView/ScrollPresenter, InteractionTracker, and XYFocus services. Focused product tests cover source-shaped selection, input, spatial keyboard, automation, layout, transition, viewport, bring-into-view, and generated-repeater scrolling paths; Preview 7 adds no ItemsView-specific public resource keys.

  • 2026-07-26 ContentControlEx content-transition behavior: issue #127 exposed that the shipped ContentTransitions property and template forwarding were metadata-only. ContentControlEx now resolves the last NavigationThemeTransition on each content change and uses the existing NavigationTransitionInfo/NavigationAnimation engine with paired current/previous ContentPresenterEx hosts. The WPF adapter retains outgoing content through exit, disables input during the sequence, enters the new content, and restores a single clean current presenter; SuppressNavigationTransitionInfo and the shared system animation switch remain authoritative. The exact regression fails on the old one-presenter template and now passes through completed cleanup without adding public API.

  • 2026-07-25 enhanced Frame/Page navigation cache parity: ModernWpf.Controls.Page now exposes ModernWpf.Navigation.NavigationCacheMode, and ModernWpf.Controls.Frame exposes the matching CacheSize dependency property with WinUI's default of 10. Type-based navigation uses separate permanent (Required) and bounded least-recently-used (Enabled) caches; Disabled remains the default, required pages do not consume the enabled-cache limit, reducing CacheSize evicts oldest enabled entries immediately, and changing a page to Disabled flushes its type. WPF's NavigationService continues to own back/forward journaling, while all Navigate(Type, ...) and SourcePageType paths use the cache adapter. FrameNavigationCacheTests covers the public contract and cache lifecycle.

  • 2026-07-19 IconElement-family current-source product, Gallery, behavior, accessibility, interaction, and pixel lock: refreshed IconElement, FontIcon, SymbolIcon, PathIcon, and BitmapIcon against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. The only substantive post-baseline change, 16737fe3a48cd8fc9b337a13e1b04e17afd97882, makes WinUI FontIcon/BitmapIcon direct-child hosting opt-in; ModernWpf retains a documented private WPF layout-host substitute with exact public geometry. This pass ports WinUI's complete 197-entry legacy Symbol-to-Fluent glyph table, the exact Segoe Fluent Icons,Segoe MDL2 Assets default shared with FontIconSource, inherited FontStyle/FontWeight, owner-level retained RTL transforms, and PathIcon's default Stretch.None. IconElement remains peerless while host controls own accessible names. Fresh fully live Light artifacts/visual-checks/20260719-032510-192-22356/report.md and Dark artifacts/visual-checks/20260719-032607-022-99256/report.md pass exact 50x51 crops at 0.02 under 0.1; Light/Dark monochrome recordings pass with local deltas 4.336 / 3.582, and AppBarButton cross-control checks pass their strict shared-SymbolIcon gates. Product/source tests pass 23/23; focused Gallery coverage passes 4/4 on net8/net10; multi-target builds have zero errors.

  • 2026-07-19 RatingControl current-source product, Gallery, behavior, accessibility, interaction, and pixel lock: refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. The sole substantive post-baseline product change, 61143cf16f5c0627153ecb1ad0ca1657f02135a7, now has a direct WPF port: PlaceholderValue preserves zero and fractions below one while negative values retain the unset sentinel, and invalid MaxRating is committed before dependent values are re-coerced so loaded layout never sees a negative maximum. The current Gallery placeholder slider now preserves its initial zero instead of translating it to the obsolete sentinel; the converted two-example page is otherwise unchanged. Fresh gate-enforced Light artifacts/visual-checks/20260719-025609-047-47084/report.md passes exact 183x32 static / 203x52 selected crops at 6.23 / 2.80; Dark artifacts/visual-checks/20260719-025640-167-62492/report.md passes at 6.90 / 4.35, under strict 7.0 / 5.0 gates with zero size tolerance. Fresh Light/Dark value recordings artifacts/gallery-recordings/20260719-025706-701/report.md and artifacts/gallery-recordings/20260719-025724-041/report.md reach 3 through UIA RangeValue. Product/source tests pass 16/16; focused Gallery coverage passes 4/4 on net8/net10; Controls/Gallery build across net462/net8/net10 with zero errors.

  • 2026-07-19 CommandBarFlyout current-source product, Gallery, behavior, accessibility, interaction, and pixel lock: refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. The sole post-baseline runtime change, 5c0970f013029ad4e343ff073fc764f1b49088fe, optimizes inserted/replaced command localization; ModernWpf's scoped peer flag already supplies equivalent constant-time MenuItem identity. Perf2026 removes one redundant toggle overflow alignment setter and matches the local template. This pass also closes the official wide-strip API gap: 20 primary plus five secondary commands now produce exactly 9 primary and 17 overflow children, including 11 moved commands and the generated separator. AlwaysExpanded now rejects internal collapse while the flyout is open, and live-inserted commands retain MenuItem roles. Fresh Light artifacts/visual-checks/20260719-022802-704-69300/report.md and Dark artifacts/visual-checks/20260719-022908-765-38068/report.md retain exact 229x136 expanded crops at 7.05 / 8.18 and static 4.99; fresh recordings artifacts/gallery-recordings/20260719-023035-553/report.md and artifacts/gallery-recordings/20260719-023154-586/report.md pass both repeat opens. Product tests pass 29/29; focused Gallery coverage passes 5/5 on net8/net10; multi-target builds have zero errors.

  • 2026-07-19 CommandBar current-source product, Gallery, behavior, accessibility, lifecycle, interaction, and pixel lock: refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; classic and perf2026 theme blobs are identical and the bounded later runtime history is nonfunctional cleanup. This pass closes three real gaps: current DynamicOverflowItemsChanging/action timing, inherited Opening/Opened/Closing/Closed events and protected hooks, and AppBar-compatible Toggle/ExpandCollapse/Window automation patterns with state-change notifications. The existing dynamic-order implementation now groups positive orders with adjacent separators and restores source order, while the WPF popup's authoritative IsOpen transition guarantees Closed even when collapsed popup content suppresses Popup.Closed. Fresh exact-size Light artifacts/visual-checks/20260719-015618-975-54260/report.md passes resting/open crops at 1.70 / 2.16; Dark artifacts/visual-checks/20260719-015715-320-93036/report.md passes at 2.08 / 2.37, all under 2.5 with zero size tolerance. Fresh Light/Dark OpenRepeat recordings artifacts/gallery-recordings/20260719-015752-861/report.md and artifacts/gallery-recordings/20260719-015932-813/report.md pass and prove repeated opening. Product tests pass 43/43; focused Gallery coverage passes 3/3 on net8/net10; Controls/Gallery build on net462/net8/net10 with zero errors.

  • 2026-07-19 AppBar-family current-source product, Gallery, behavior, accessibility, interaction, and pixel lock: refreshed AppBarButton, AppBarToggleButton, AppBarSeparator, and AppBarElementContainer against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Classic runtime/theme inputs remain current and the perf2026 button/toggle variants only express equivalent setters. The audit found a real public/behavior gap: all four elements now expose current ICommandBarElement.IsInOverflow and DynamicOverflowOrder, and CommandBar moves positive order groups lowest-first with adjacent separators before falling back right-to-left through order-zero commands; property changes reflow immediately. Gallery commit 40a22976f78e63d5480afa8b49d5f3f7d5860dc6 corrected the displayed AppBarButton flyout tree, now mirrored and guarded locally. Fresh Light artifacts/visual-checks/20260719-012054-235-104188/report.md passes button/toggle/separator at 4.43 / 4.45 / 0.61; Dark artifacts/visual-checks/20260719-012207-886-65184/report.md passes at 4.47 / 4.47 / 0.52, all with exact primary sizes. Fresh Light/Dark recordings artifacts/gallery-recordings/20260719-012259-999/report.md and artifacts/gallery-recordings/20260719-012334-172/report.md pass 3/3 and prove button output plus Off-to-On toggle behavior. Product/source tests pass 41/41; focused Gallery coverage passes 2/2 on net8/net10.

  • 2026-07-18 AnnotatedScrollBar current-source product, Gallery, behavior, accessibility, interaction, and pixel lock: refreshed against official microsoft-ui-xaml commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and WinUI Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Generated/IDL/header/classic-theme/event/panning/test/TestUI/ScrollPresenter inputs remain byte-current; runtime only shares the infinite-size constant and iterates labels by const reference, while perf2026 expresses equivalent state setters. ModernWpf's visible example now restores current Gallery's ScrollView header/XAML and ScrollPresenter.VerticalScrollController snippet while retaining the tested WPF ScrollViewer/WrapPanel adapter underneath. Controller requests/cancellation/direction, labels/collision/hover, parts/resources, and no-standalone-peer ownership are pinned. Exact 52x500 live crops pass Light 1.20 / Dark 1.21 under 1.5 with zero size tolerance; scroll recordings prove 0%→55% movement at local deltas 102.53 / 102.133. Product/source tests pass 15/15, Gallery coverage 3/3 on net8/net10, and net462 Controls/Gallery builds are warning-free.

  • 2026-07-18 InfoBar current-source product, Gallery, behavior, accessibility, interaction, and pixel lock: refreshed against official microsoft-ui-xaml commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and WinUI Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Runtime, generated, IDL, peer, panel, template/theme, interaction-test, localization, and TestUI inputs remain byte-current; later history only moves the source root and perf2026-packages the same dictionaries. Current defaults, close/cancel ordering, icon reset, severity/foreground/content/visibility states, physical-pixel panel layout, StatusBar/InfoBar peer identity, open-only accessible-tree membership, all three Gallery examples, and every option family are pinned. The harness now requires exact 560x95 geometry with zero size tolerance under 2.0; fresh Light/Dark pass at 1.33 / 1.46. Fresh On-to-Off recordings pass with 4.47 / 8.786 local deltas. Product/source tests pass 12/12, Gallery coverage 3/3 on net8/net10, and Controls/Gallery build warning-free on net462.

  • 2026-07-18 ProgressBar current-source product, Gallery, behavior, accessibility, and pixel parity: refreshed the custom ModernWpf.Controls.ProgressBar against official microsoft-ui-xaml commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and WinUI Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Runtime/resource blobs remain current; later history only moves the source root and perf2026-packages the same dictionaries. A distinct WinUIProgressBar route mirrors the current two-example Gallery page without claiming the stock WPF ProgressBar route as custom-control evidence. The live harness sets both determinate bars to 65 through UIA, requires the real ProgressBar2/ModernWpf elements, exact 130x3 crops, zero size tolerance, and delta <=2.0. A DPI-aware one-scanline overlay compensates WPF's full-edge antialiasing while retaining source caps, width math, track, states, transforms, and public geometry. Final Light and Dark both pass at 0.43; range/state/NaN behavior, roles, accessible names, RangeValue behavior, exact snippets, and strict gates are pinned.

  • 2026-07-18 ProgressRing current-source, Gallery, behavior, accessibility, and pixel lock: refreshed against official microsoft-ui-xaml commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and WinUI Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Every runtime, generated, Lottie, theme, peer, API-test, and interaction-test blob remains byte-current; later history only moves the source root and perf2026-packages unchanged XAML. Current two-example Gallery layout/snippets, toggle/background/value/NaN behavior, ProgressBar role, localized type/name, control-view state, and determinate-only RangeValue are pinned. The deterministic harness sets both rings to 65, requires the real 60x60 elements, and now enforces zero size tolerance in addition to its 1.0 mean-delta gate. Final Light is 0.64; Dark is 0.63, both exact 60x60.

  • 2026-07-19 MenuFlyout current-source product, Gallery, behavior, accessibility, interaction, and pixel lock: refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. The classic theme blob remains byte-current; the new perf2026 blob f5cfea5b8bd4b3bccb8a24c8f4fbc165c1cc69b9 only substitutes equivalent setters for seven narrow-padding animations and catches up SplitMenuFlyout content already present in the classic authority before root move 8463f45162149de0ec3ad7df752596893fe3e13e. The current seven-example Gallery surface, 14-DIP typography, item/presenter metrics, radio placeholder, High Contrast tokens, roles, providers, and exact popup normalization remain pinned. Fresh Light artifacts/visual-checks/20260719-004427-629-26672/report.md passes exact 68x64 / 96x102 crops at 0.57 / 6.70; Dark artifacts/visual-checks/20260719-004459-735-37204/report.md passes at 0.55 / 4.01. Fresh Light/Dark OpenRepeat recordings artifacts/gallery-recordings/20260719-004531-064/report.md and artifacts/gallery-recordings/20260719-004623-068/report.md invoke By rating, prove leaf dismissal, and reopen Sort. Product tests pass 21/21; focused Gallery coverage passes 3/3 on net8/net10; Gallery builds pass net462/net8/net10 with zero errors.

  • 2026-07-19 MenuBar current-source product, Gallery, behavior, accessibility, interaction, and pixel lock: refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. All ten audited product blobs remain byte-current; later history only packages perf resources and performs root move 8463f45162149de0ec3ad7df752596893fe3e13e. The current three-example Gallery retains live Open / Other Formats labels and deliberately historical ellipses in its displayed snippets. This pass fixes cross-control drift exposed after current MenuFlyout typography landed: the WPF MenuBar-only presenter adapter restores system-menu glyph metrics, exact four-row 134-pixel geometry, and source leaf-invocation dismissal while preserving submenus and StaysOpenOnClick. Fresh Light artifacts/visual-checks/20260719-000953-705-5868/report.md passes exact 158x40 closed at 2.63 and 96x134 versus 98x134 open at 8.61; Dark artifacts/visual-checks/20260719-001049-872-102252/report.md passes at 2.57 / 6.74. Fresh Light/Dark OpenRepeat recordings prove Exit dismissal and reopen. Product tests pass 12/12; focused Gallery coverage passes 4/4 on net8/net10; Gallery builds on net462/net8/net10.

  • 2026-07-18 Flyout current-source product, Gallery, behavior, accessibility, interaction, and pixel parity: refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Bounded history contains only root move 8463f45162149de0ec3ad7df752596893fe3e13e and current placement fix 2db27f71f857363d6a9a4485e01c8b8fdbe02499; presenter/theme blobs and the one-example converted Gallery remain current. The port preserves 16,15,16,17 padding, border/corner/content/shadow structure and bottom-aligns overflowing Left/Right placement to its anchor. Fresh exact 90x32 Light/Dark triggers remain 2.63 / 2.21; complete 366x96 surfaces remain 10.07 / 3.72 versus WinUI 366x97. Fresh OpenRepeat recordings prove confirmation close and reopen in both themes. Product tests pass 24/24, focused Gallery coverage passes 6/6 on net8/net10, and Gallery builds on net462/net8/net10.

  • 2026-07-18 Popup current-source Gallery visual, behavior, accessibility, and interaction lock: refreshed against official microsoft/WinUI-Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; current page/code/snippet blobs are pinned and no Popup change follows conversion 14a4a1a2b8ddc527dc4a7d5f7e743d7c2bc97db7. The current runtime page uses a natural-height MinWidth=240 surface while its displayed snippet intentionally remains the historical fixed 200x160 example. ModernWpf's platform WPF Popup adapter preserves offsets, inverse light-dismiss state, option disabling/restoration, explicit Close, Text/Button roles, and Invoke. Its 22-DIP heading minimum bridges WPF's one-DIP-shorter 16px line box and produces exact 240x96 geometry. Fresh fully live Light artifacts/visual-checks/20260718-234231-942-70740/report.md passes exact 189x32 trigger / 240x96 surface at 3.33 / 2.63; Dark artifacts/visual-checks/20260718-234257-459-77704/report.md passes at 3.13 / 2.66. Fresh Light/Dark OpenRepeat recordings pass with maximum frame/local deltas 0.265 / 23.164 and 0.367 / 28.313. Focused Gallery coverage passes 3/3 on net8/net10; PowerShell parsers and Gallery builds on net462/net8/net10 pass.

  • 2026-07-18 TeachingTip current-source pixel, behavior, and accessibility parity: refreshed against official winui3/main commit de3e767333c2f0717a6a70cb22bd192ced5ad885. The root-layout move 8463f45162149de0ec3ad7df752596893fe3e13e is non-substantive; the only later control patch, c7e2f98d978c81c2b7b0054eb042a6f8f816ec9c, merely compiles test hooks out of production. ModernWpf now forwards owner automation name/ID to the popup with the source title fallback and live refresh behavior. The harness replaces incomparable difference crops with a common TeachingTipSurface, requires exact 135x32 resting and 224x64 open geometry, and enforces 4.0 static / 10.0 open gates with exact size. Final Light is 3.43 static / 9.30 open; Dark is 2.94 / 8.28.

  • 2026-07-18 ContentDialog current-source, Gallery, pixel, behavior, accessibility, and interaction parity: refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; the only post-baseline product hit is root move 8463f45162149de0ec3ad7df752596893fe3e13e, and the two-example Gallery is unchanged after conversion. Product and Gallery blobs, both default-button modes, results, custom content, fonts, Window/modal peer semantics, and strict closed/open gates are pinned. Fresh Light is 3.59 closed and 6.59 open (101x32, 320x218 vs 320x219); Dark is 2.62 / 6.15 (101x32, 320x220 vs 320x221). Fresh OpenRepeat recordings verify Cancel close and reopen in both themes. Product/source tests pass 18/18, Gallery coverage passes 2/2 on net8/net10, and Gallery builds on net462/net8/net10.

  • 2026-07-18 AppBarButton/AppBarToggleButton/AppBarSeparator current-source, pixel, behavior, and accessibility parity: refreshed against official winui3/main commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and installed WinUI Gallery 2.9.3.0. The only post-May source-history hit is commit 8463f45162149de0ec3ad7df752596893fe3e13e, which removed the mirror's old src/ prefix; the AppBar implementation/resources did not substantively change. Current 68x64 button/toggle geometry and 334x48 separator sample geometry were already exact, so no source-breaking product offset was added. The harness now requires the exact official control crops, strict static gates of 5.0 / 5.0 / 1.0, exact static sizes, live AppBarButton click/output parity under 7.0 with a two-pixel width allowance, and live AppBarToggleButton Off-to-On parity under 3.0 with exact size. Final Light deltas are button 4.43 static / 5.64 output, toggle 4.45 static / 2.37 checked, and separator 0.61; Dark is 4.47 / 6.61, 4.47 / 2.51, and 0.52. Product/source tests pass 37/37, Gallery coverage 2/2 on net8 and net10, and Controls/Gallery build on net462/net8/net10.

  • 2026-07-18 NavigationView current-source, Gallery, behavior, accessibility, interaction, pixel, and startup parity: refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. ModernWpf retains the current resource/template/peer/sample lock and now ports two current runtime fixes: pane layout compares actual menu height and refuses negative footer subtraction before assigning MaxHeight, while the queued child-flyout show revalidates expansion, flyout mode, template root, and attached flyout to avoid reopening stale/recycled items. Deterministic regressions cover both. The unchanged eight-example Gallery, source definitions, options, data/hierarchy paths, and selection behavior are pinned. Fresh exact 745x460 Light/Dark comparisons remain 1.03 / 0.93 under 1.2; fresh selection recordings pass at local deltas 4.848 / 5.139. NavigationView product/source tests pass 54/54, SplitView 14/14, Gallery coverage 7/7 on net8/net10, and Gallery builds on net462/net8/net10.

  • 2026-07-17 CommandBarFlyout current-source pixel/accessibility parity: refreshed against official winui3/main commit 3cae15f071f1ab8565f9a7592dbf27f04bafe651 and live WinUI Gallery 2.9.3.0. The port removes stale fixed primary-item and command-bar dimensions, follows the source 40px/52px primary states and 36x54 ellipsis, compensates WPF's separate popup HWND by the measured two-pixel anchor inset, and exposes Menu/MenuItem automation roles plus the expanded Less app bar name. ModernWpf and WinUI now share an exact 217x124 raw command union and 229x136 shadow-inclusive interaction crop in both themes. Strict static/interaction gates are 6.0 / 9.0, with exact interaction size parity.

  • 2026-07-18 ItemsRepeater current-source, accessibility, Gallery, and pixel parity: refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Current product blobs and the bounded post-root history are pinned, including WinUI's viewport-manager consolidation and null-LayoutState collection-change guard. A direct port of upstream AccessibilityTests.ValidateChildrenPeers now proves the existing WPF peer filters a recycled element, flattens accessible descendants beneath a peerless container, sorts by item index, and reports the Group role. The converted Gallery's six definitions, Low chrome bars, options, snippets, and interactions are current. Fresh exact 425x88 Light/Dark comparisons remain 0.53 / 0.42 under 1.0; fresh scroll recordings pass in both themes.

  • 2026-07-18 BreadcrumbBar current-source, accessibility, Gallery, interaction, and pixel parity: refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Every substantive runtime, layout, item, peer, classic-template/theme, resource, API-test, and interaction-test blob remains byte-current after the root move; the new perf2026 dictionary preserves the setter-based contract already represented by VisualStateEx. The audit exposed a real accessibility gap: ellipsis More and the item localized control type are now resource-backed, while hidden-versus-rendered ellipsis peers emulate WinUI AccessibilityView.Raw/Content through WPF Control/Content tree gating and peer invalidation. The unchanged two-example Gallery, click removal, reset, snippets, and strict harness are pinned. Fresh exact 530x26 Light/Dark comparisons remain 2.53 / 2.33 under 3.0; fresh Button-Invoke recordings prove Folder1 removes both trailing folders. Product/source tests pass 29/29, Gallery coverage passes 2/2 on net8/net10, and all Gallery target builds succeed.

  • 2026-07-18 SelectorBar current-source, accessibility, Gallery, interaction, and pixel parity: refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Runtime, item, peer, classic/perf template, theme, resource, API-test, interaction-test, and all three converted Gallery examples remain byte-current after the root move. The audit exposed a real accessibility mismatch: the active internal ItemsView now reports List plus single optional Selection, SelectorBarItem reports ListItem plus SelectionItem with the internal List as its selection container, and the localized fallback comes from the upstream SelectorBarItemDefaultControlName resource. The retained outer WPF peer is Raw-only so harness IDs remain addressable without duplicating the accessible control. Fresh exact 284x48 Light/Dark comparisons remain 1.99 / 2.58 under 3.0; fresh SelectionItem recordings prove Shared changes from Unselected to Selected. Product/source tests pass 11/11, Gallery coverage passes 2/2 on net8/net10, and Gallery builds succeed on net462/net8/net10.

  • 2026-07-17 AnnotatedScrollBar pixel parity: current WinUI sources inherit common ButtonPadding for the 30x19 scroll buttons and use the symbol font for the 8px arrow glyphs. ModernWpf removes its stale zero-padding override, explicitly applies the Fluent symbol face, resolves button/thumb brushes without WPF's indirect-alias fallback, and preserves zero-alpha chrome semantics. The strict proof now compares the actual 52x500 control; Light/Dark deltas are 1.20 / 1.21, and the harness gate is tightened to 1.5.

  • 2026-07-17 IconElement pixel parity: the official sample paragraph now uses BodyTextBlockStyle, and the strict primary proof compares the actual rendered 50px SlicesIcon BitmapIcon instead of including unrelated sample text. A parent-offset viewbox makes the isolated WPF BitmapIcon artifact nonblank. Installed Gallery crops match at 50x51 with 0.02 Light/Dark deltas, and the harness gate is tightened to 0.1.

  • 2026-07-17 RatingControl pixel parity: current winui3/main still resolves the 12px caption through CaptionTextBlockStyle / XamlAutoFontFamily and includes the caption's actual width in the control width. ModernWpf now uses the equivalent Segoe UI Variable Small optical face and removes WPF's one-physical-pixel caption rounding excess with a DPI-aware correction. Installed Gallery crops match exactly at 183x32; strict Light/Dark deltas are 6.23 / 6.90, and the harness gate is tightened to 7.0.

  • 2026-07-17 InfoBar pixel parity: the generated Gallery example now top-aligns the InfoBar instead of stretching it to the adjacent options column. The InfoBar style enables device-pixel snapping, and InfoBarPanel reproduces current WinUI TextBlock::MeasureOverride physical-pixel desired-size ceilings plus m_layoutRoundingHeightAdjustment content offset. The installed Gallery primary crop now matches exactly at 560x95; strict Light/Dark deltas are 1.33 / 1.46, and the harness gate is tightened to 2.0.

  • 2026-07-17 BreadcrumbBar pixel parity: the shared WinUI font resource now resolves Segoe UI Variable Text with a Segoe UI fallback, BreadcrumbBar explicitly uses WinUI's default layout rounding, and ContentPresenterEx reproduces current WinUI TextBlock::MeasureOverride physical-pixel ceiling semantics for generated text. The installed Gallery's eight item widths now match exactly (56,89,61,84,63,63,65,49; 530x26 total). Strict Dark/Light primary deltas are 2.33 / 2.53, with all residual pixels confined to WPF-vs-WinUI glyph antialiasing, and the harness gate is tightened to 3.0.

  • 2026-05-20 ThemeShadowChrome WinUI-shaped aliases: ThemeShadowChrome now accepts TranslationZ as a two-way alias for the existing WPF renderer Depth and a ThemeShadow object through ThemeShadowChrome.Shadow property-element syntax as a marker alias for IsShadowEnabled. This lets new source-backed templates read closer to WinUI's element.Shadow = new ThemeShadow(); element.Translation.Z = ... shape while keeping the explicit WPF ThemeShadowChrome host required for layout, popup insets, hit testing, opacity propagation, and the validated actual-control PNG comparison path.

  • 2026-07-17 ThemeShadow pixel-parity refresh: the installed-Gallery comparison now removes ControlExample chrome and isolates the exact 272x272 source Example3Grid. Light and Dark score 0.22 / 0.12 under a strict 0.3 gate, covering the card fill, corner radius, 36px source padding, and shadow envelope.

  • 2026-05-20 ThemeShadow actual-control parity proof: ThemeShadowChrome now aligns childful popup shadows from the source content origin, so medium-popup layouts keep the WinUI 10,2 content inset while drawing the full depth-32 shadow bitmap at the source caster origin. tools/theme-shadow/WinUIReferenceCapture continues to host a real Application resource graph with XamlControlsResources; actual-control mode now captures MenuFlyoutPresenter by opening a real WinUI MenuFlyout.ShowAt owner path, and the ModernWpf rendered-template guard opens a real WPF MenuFlyout before snapshotting the presenter. Fresh WPF snapshots, a refreshed all-nine actual-control WinUI folder, Prepare-ThemeShadowReferenceCaptures.ps1 -RequireReferencePngs, the opted-in reference-directory guard, the opted-in rendered-template PNG comparison, and the focused ThemeShadow/template guard all pass.

  • 2026-05-20 ThemeShadow capture provenance and actual-control extraction: tools/theme-shadow/WinUIReferenceCapture writes same-named .capture.txt sidecars for every generated PNG, recording the manifest target, capture mode, WinUI RenderTargetBitmap path, canvas, and ignored bounds. The capture executable supports the existing all-target source-geometry mode and an all-target actual-control path; the helper terminates directly after capture so GUI runs do not linger. Prepare-ThemeShadowReferenceCaptures.ps1 -RequireReferencePngs and TemplateParityTests.ThemeShadowReferenceDirectoryCoversCaptureManifestWhenOptedIn require those provenance sidecars for PNG reference folders.

  • 2026-05-20 ThemeShadow reference PNG proof guard: TemplateParityTests.ThemeShadowReferenceDirectoryCoversCaptureManifestWhenOptedIn now verifies more than file presence and dimensions when MODERNWPF_SHADOW_REFERENCE_DIR points at a PNG reference folder. Each PNG must have a matching .mask.txt sidecar with the manifest target name, shadow-only kind, matching canvas size, and in-bounds IgnoredBounds; after the guard clears that caster/content region, it requires visible shadow darkening outside the mask. This catches blank or unmasked live-reference folders before the rendered-template comparison runs.

  • 2026-05-20 ThemeShadow live WinUI capture harness: tools/theme-shadow/WinUIReferenceCapture/WinUIThemeShadowCapture.csproj now builds a small WinUI app that reads docs/theme-shadow-reference-captures.json, uses the staged .mask.txt sidecars as source-shaped caster geometry, renders real light-theme WinUI ThemeShadow pixels through RenderTargetBitmap, and writes all nine canonical *-shadow-only.png references. The capture folder passes the Prepare-ThemeShadowReferenceCaptures.ps1 -RequireReferencePngs preflight and the opted-in reference-directory guard. This still does not close the parity goal: it is source-shaped live ThemeShadow capture rather than full actual-control template capture, and the rendered-template comparison currently fails first on FlyoutPresenter-shadow-only because ModernWpf's centroid is shifted right/down from the live WinUI reference while the childless comparison passes.

  • 2026-05-20 ThemeShadow reference capture staging: tools/theme-shadow/Prepare-ThemeShadowReferenceCaptures.ps1 now reads docs/theme-shadow-reference-captures.json, verifies the WPF snapshot corpus has all nine shadow-only PNG/metrics/mask files, copies the .mask.txt sidecars into the WinUI reference directory, and writes a capture checklist. -RequireReferencePngs makes the script fail until all nine live WinUI PNGs are present. This stages the remaining capture work but does not close the parity goal.

  • 2026-05-20 ThemeShadow reference directory guard: TemplateParityTests.ThemeShadowReferenceDirectoryCoversCaptureManifestWhenOptedIn now uses MODERNWPF_SHADOW_REFERENCE_DIR and the capture manifest to require all nine references to exist as .png or .txt files, with dimensions matching the manifest. The normal no-env path stays CI-safe, but an opted-in reference run now catches incomplete or wrong-sized WinUI capture folders before the rendered-template comparison runs.

  • 2026-05-20 ThemeShadow reference capture manifest: docs/theme-shadow-reference-captures.json now pins the nine representative shadow-only reference targets, canonical reference filenames, canvas sizes, owning rendered-template tests, and WinUI source evidence. TemplateParityTests.ThemeShadowReferenceCaptureManifestCoversRenderedSnapshotTargets guards the manifest. The remaining gap is narrower but still real: the manifest is the capture contract, not the live WinUI PNG capture itself.

  • 2026-05-20 ThemeShadow reference PNG comparison: MODERNWPF_SHADOW_REFERENCE_DIR now accepts same-named .png files as well as .txt metrics. PNG references are converted into the same bounds, peak darkening, shadow-pixel count, and centroid metrics, then compared with per-pixel darkening deltas across the canvas and shadow-pixel union. This removes the need to hand-author reference metric files after WinUI screenshots are captured, but the goal remains open until those live WinUI reference captures exist and any material raster differences are tuned.

  • 2026-05-19 ThemeShadow snapshot reference comparison: the WPF shadow snapshot exporter now writes stable key-value metric files for shadow-only captures and honors MODERNWPF_SHADOW_REFERENCE_DIR. When that env var points at same-named WinUI reference metrics, the rendered-template shadow tests compare canvas size, bounds, peak darkening, shadow-pixel count, and centroid with bounded WPF-substitution tolerances. This makes the remaining WinUI-vs-ModernWpf screenshot calibration executable once WinUI references exist, but it still does not close the goal because those references have not been captured in this repo.

  • 2026-05-19 ThemeShadow WPF snapshot exporter: the rendered-template shadow guards now honor MODERNWPF_SHADOW_SNAPSHOT_DIR. When set, LayoutCompatibilityApiTests.SourceBackedShadowTemplatesRenderVisibleShadowPixels and SourceBackedChildlessShadowTemplatesRenderVisibleShadowPixels export PNGs and text metrics for the representative ModernWpf shadow surfaces they already validate. This creates the WPF-side corpus for the remaining WinUI-vs-ModernWpf screenshot comparison, but it does not close the goal by itself because the WinUI reference capture and automated image comparison are still missing.

  • 2026-05-19 ThemeShadow host-inventory/render guard completion: TemplateParityTests.ProductTemplatesUseOnlyKnownThemeShadowChromeHosts now pins the product XAML ThemeShadowChrome host inventory to the nine source-backed shadow surfaces. LayoutCompatibilityApiTests.SourceBackedShadowTemplatesRenderVisibleShadowPixels also covers CommandBarFlyout overflow-root shadow pixels and MenuFlyoutPresenter visible rendered pixels, in addition to the previous FlyoutPresenter, NumberBox, AutoSuggestBox, CommandBar, and TeachingTip cases. MenuFlyout remains a WPF ContextMenu isolation case, so full left/top gutter parity stays covered by the WinUI control-master geometry guard until a live WinUI-vs-WPF screenshot harness exists.

  • 2026-05-19 ThemeShadow expanded rendered-template guard: LayoutCompatibilityApiTests.SourceBackedShadowTemplatesRenderVisibleShadowPixels now renders additional actual source-backed chromes for AutoSuggestBox suggestions, CommandBar overflow, and TeachingTip content-root shadows, alongside the existing FlyoutPresenter and compact NumberBox popup coverage. The guard detaches real template ThemeShadowChrome instances into deterministic white canvases and verifies visible shadow pixels beyond their arranged caster bounds.

  • 2026-05-19 ThemeShadow control-master geometry guard: LayoutCompatibilityApiTests.ThemeShadowRendererMatchesWinUIControlDropShadowMasters now pins WPF renderer geometry against source control-level MockDComp masters for Flyout, MenuFlyout, CommandBar overflow, and ContentDialog drop-shadow mode. The guard verifies the same caster sizes, source depths, shadow bitmap sizes, and content offsets exposed by the WinUI DropShadowVisual sprites.

  • 2026-05-19 ThemeShadow childless rendered-template guard: LayoutCompatibilityApiTests.SourceBackedChildlessShadowTemplatesRenderVisibleShadowPixels now renders actual childless source-backed template chromes, covering ContentDialog.Shdw at source depth 128 and NavigationView.ShadowCaster at source depth 16. The guard normalizes state-driven opacity/transform for the detached render pass and verifies visible WPF shadow pixels around the explicit caster slots.

  • 2026-05-19 ThemeShadow rendered-template guard: LayoutCompatibilityApiTests.SourceBackedShadowTemplatesRenderVisibleShadowPixels now renders representative source-backed template chromes instead of only checking template shape. It covers FlyoutPresenter at source depth 32 with medium windowed-popup insets and the compact NumberBox popup at source depth 16, hides the caster child to isolate the shadow layer, and verifies visible WPF shadow pixels extend beyond the arranged caster with a downward centroid.

  • 2026-05-19 ThemeShadow caster-opacity parity: ThemeShadowChrome now observes the decorated child Opacity and applies it to the private WPF shadow host, matching WinUI's ThemeShadowDropShadowOpacity MockDComp master where the generated DropShadowVisual carries the caster opacity. Loaded chrome instances also sync opacity on render ticks so WPF opacity animations affect the shadow's effective opacity. LayoutCompatibilityApiTests.ThemeShadowChromeTracksCasterOpacityLikeWinUISource and ThemeShadowChromeTracksAnimatedCasterOpacityLikeWinUISource render the same source-shaped canvas at full and half caster opacity and verify the shadow darkening scales while geometry stays stable.

  • 2026-05-19 ThemeShadow input transparency fix: ThemeShadowChrome now delegates point hit testing only into its decorated child so shadow-only padding regions are transparent to input, matching WinUI's DropShadowVisual TransparentForInput=True MockDComp masters and hit-test coverage. LayoutCompatibilityApiTests.ThemeShadowChromeShadowVisualIsTransparentForInputLikeWinUISource hosts a chrome and verifies top-left/lower shadow extents are skipped while the caster child remains hit-testable.

  • 2026-05-19 ThemeShadow dynamic corner-radius redraw guard: LayoutCompatibilityApiTests.ThemeShadowChromeRerendersWhenCornerRadiusChangesLikeWinUISource now keeps one WPF ThemeShadowChrome instance alive while changing its CornerRadius, mirroring WinUI's ThemeShadowDropShadowDynamicCornerRadius invalidation path. The guard compares rendered shadow stats and caster-corner pixels after rounded, square, and larger-rounded updates. WPF still represents this through circular per-corner CornerRadius, not WinUI shape RadiusX / RadiusY.

  • 2026-05-19 ThemeShadow actual-theme redraw guard: LayoutCompatibilityApiTests.ThemeShadowChromeRerendersWhenRequestedThemeChangesLikeWinUISource now keeps one WPF ThemeShadowChrome instance in the WinUI ThemeShadowDropShadowSystemThemeRedrawRTB source canvas, switches its requested theme from light to dark, and compares the re-rendered dark shadow bounds, peak darkening, pixel count, and centroid against the WinUI pixel masters. This guards the real actual-theme invalidation path instead of only constructing separate light/dark chrome instances.

  • 2026-05-19 ThemeShadow childless caster preservation: childless ThemeShadowChrome instances now keep their explicit arranged size as the caster size while childful chrome hosts still reserve source shadow padding around their child. This preserves NavigationView-style ShadowCaster template parts whose WPF visual states set Width / Height directly. LayoutCompatibilityApiTests.ThemeShadowChromeChildlessCasterUsesExplicitSizeAsSourceCaster renders a 50x50 childless caster in the WinUI pixel-master source canvas and compares light/dark shadow bounds, peak darkening, pixel count, and centroid against the same source masters.

  • 2026-05-19 ThemeShadow rendered pixel calibration: ThemeShadowChrome now reserves its source shadow inset in layout and arranges the child at the source content offset, so the WPF visual tree renders the full left/top shadow extent instead of relying on clipped overflow. LayoutCompatibilityApiTests.ThemeShadowChromeRenderedPixelsTrackWinUIPixelMasters renders an actual chrome in WinUI's ThemeShadowDropShadowSystemThemeRedrawRTB source canvas, verifies the 82x82 shadow host / 50x50 caster-at-25,25 layout, and compares light/dark rendered pixel bounds, peak darkening, pixel count, and centroid against the WinUI pixel masters.

  • 2026-05-19 ThemeShadow popup inset ownership: windowed-popup insets are now single-owned by ThemeShadowChrome layout. The old popup-child Margin application was removed so medium popup hosts do not double-count the 10,2,10,18 WinUI gutter after the chrome started measuring to child size plus inset. LayoutCompatibilityApiTests.ThemeShadowChromePopupInsetsAreNotDoubleAppliedAsChildMargin guards the WPF Popup path.

  • 2026-05-19 ThemeShadow source coverage guard: docs\theme-shadow-source-coverage.md now maps known local WinUI 3 ThemeShadow and elevation inputs to the shared ThemeShadowChrome renderer, source-backed control template targets, official WPF Fluent stock exceptions, or documented WPF substitutions. TemplateParityTests.ThemeShadowSourceCoverageAuditCoversKnownWinUIShadowInputs guards row count, statuses, duplicate source/status pairs, and local evidence paths so new shadow work cannot rely on undocumented guesses.

  • 2026-05-19 FlyoutPresenter shadow source audit: ModernWpf.Controls\Flyout\FlyoutPresenter.xaml maps WinUI's FlyoutPresenter::OnApplyTemplate ApplyElevationEffect(first child) path by making the template root a ThemeShadowChrome around the presenter surface. FlyoutPresenterApiTests.FlyoutPresenterTemplateUsesSourceThemeShadow now pins source depth 32, WindowedPopupInsetMode=Medium, popup inset padding, corner-radius binding, and the IsDefaultShadowEnabled toggle path.

  • 2026-05-19 AutoSuggestBox suggestions shadow source audit: ModernWpf.Controls\AutoSuggestBox\AutoSuggestBox.xaml already maps WinUI's ApplyElevationEffect(m_tpPopupPart.AsOrNull<IUIElement>().Get()) path by making the suggestions popup child a ThemeShadowChrome around SuggestionsContainer. AutoSuggestBoxApiTests.SuggestionsPopupUsesSourceThemeShadow now pins the source depth 32, WindowedPopupInsetMode=Medium, popup inset padding, and corner-radius binding so future popup/template work cannot regress the source shadow target.

  • 2026-05-19 CommandBar overflow shadow wrapper source port: ModernWpf.Controls\CommandBar\CommandBar.xaml now keeps OverflowContentRoot as the measured popup root and moves the WPF ThemeShadowChrome to SecondaryItemsControlShadowWrapper, matching WinUI's ApplyElevationEffect(SecondaryItemsControlShadowWrapper) target while retaining depth 32, WindowedPopupInsetMode=Medium, and the source SecondaryItemsControl corner-radius binding. CommandBarApiTests.CommandBarOverflowShadowUsesSourceWrapper guards the template shape.

  • 2026-05-19 ThemeShadow WinUI pixel-master PNG guard: LayoutCompatibilityApiTests.ThemeShadowChromeRenderedPixelsTrackWinUIPixelMasterPngsWhenSourceRootProvided now honors MODERNWPF_WINUI_SOURCE_ROOT and reads the checked-in WinUI ThemeShadowDropShadowSystemThemeRedrawRTB.Light.1.master.png / Dark.1.master.png files from src\dxaml\test\resources\masters. The guard masks out the opaque source caster, derives shadow metrics from the PNG pixels, and compares the current WPF render against those source-derived metrics so the previous copied numeric baseline is backed by the local WinUI source tree.

  • 2026-05-19 ThemeShadow reference mask sidecars: the rendered-template shadow snapshot exporter now writes same-named .mask.txt sidecars for shadow-only captures, recording the caster/content IgnoredBounds in the capture canvas. PNG reference comparison reads those sidecars from MODERNWPF_SHADOW_REFERENCE_DIR and masks that region in both the WinUI reference image and ModernWpf snapshot before deriving metrics and image deltas, so future WinUI reference captures can include the opaque source surface without polluting shadow-only comparison. docs\theme-shadow-reference-captures.json now pins the .mask.txt convention.

  • 2026-05-18 TeachingTip content shadow source port: ModernWpf.Controls\TeachingTip\TeachingTip.xaml now wraps the source ContentRootGrid part in ContentRootGridShadowChrome, using the shared ThemeShadowChrome renderer at depth 32 with WindowedPopupInsetMode=Medium. TeachingTip.cs now animates the WPF shadow depth from 0.01 to 32 during open and back toward 0.01 during close, representing the WinUI m_tipShouldHaveShadow=true, m_contentElevation=32, and translation-Z animation path. The debug/test-only tail shadow experiment remains unported. TeachingTipApiTests.TeachingTipContentRootUsesSourceThemeShadow guards the template shape.

  • 2026-05-18 CommandBarFlyout overflow shadow source port: ModernWpf.Controls\CommandBarFlyout\CommandBarFlyout.xaml now ports WinUI's OuterOverflowContentRootShadow / NoOuterOverflowContentRootShadow states through an OuterOverflowContentRootShadowChrome wrapper at depth 32 with WindowedPopupInsetMode=Medium. CommandBarFlyoutCommandBar.ClearShadow and UpdateShadow now drive those states like source: no-primary-command flyouts use the overflow-root shadow, while primary-command flyouts use it only when the overflow opens downward. CommandBarFlyoutApiTests.PresenterShadowStaysDisabledWithoutPrimaryCommandsLikeWinUISource and FlyoutCommandBarAvailableAndCombinedStatesUseVisualStateSetters guard the behavior and template state targets.

  • 2026-05-18 MenuFlyoutPresenter shadow source port: ModernWpf.Controls\MenuFlyout\MenuFlyout.xaml no longer maps IsDefaultShadowEnabled to WPF ContextMenu.HasDropShadow. It now uses the shared ThemeShadowChrome presenter shadow at depth 32 with WindowedPopupInsetMode=Medium, keeps HasDropShadow=False, and ports the source menu-flyout presenter resources and BackgroundSizing=InnerBorderEdge chrome while retaining WPF ContextMenu item hosting as the platform substitute. MenuFlyoutApiTests.PresenterShadowFollowsWinUISource guards the opened presenter tree.

  • 2026-05-18 ThemeShadow 125% popup master: LayoutCompatibilityApiTests.ThemeShadowRendererMatchesWinUIMockDCompMasterGeometry now includes Foundation_Graphics_ThemeShadowTests_ThemeShadowDropShadowWindowedPopup125.Shadow.master.xml, pinning the 125% source popup geometry where WinUI renders a 50.4x50.4 DIP caster into an 82.4x82.4 DIP shadow sprite. This guards DPI rounding in the WPF software renderer.

  • 2026-05-18 ThemeShadow visual-render guard: LayoutCompatibilityApiTests.ThemeShadowChromeRendersHollowCenteredVisualShadow now renders an actual ThemeShadowChrome through WPF RenderTargetBitmap and samples the hollow center plus outer shadow pixels. This complements the internal renderer metrics by guarding the visual-tree path that templates use.

  • 2026-05-18 ThemeShadow raw-shadow guard: TemplateParityTests.ProductTemplatesDoNotUseDropShadowEffectOutsideOfficialWpfFluentStockShadows now scans product XAML and rejects raw WPF DropShadowEffect outside the documented official WPF Fluent stock-control exceptions (ComboBox, DatePicker, MenuItem, and ToolTip). WinUI-source-backed controls should render shadows through the shared ThemeShadowChrome path so depth, popup insets, hollow-center behavior, and source-backed tests stay centralized.

  • 2026-05-18 ThemeShadow source recipe port: ThemeShadowChrome is no longer implemented as two WPF Border layers with BlurEffect. It now hosts a cached depth-driven software alpha-mask renderer that keeps existing ThemeShadowChrome template usage working while porting WinUI's GetDropShadowRecipe depth, blur, offset, inset, hollow-center, and light/dark opacity formulas. This follows source depth semantics such as NumberBoxPopupShadowDepth=16, ContentDialog drop-shadow-mode baseElevation=128, CommandBarFlyout drop-shadow paths, NavigationView pane overlay shadow depth, and WinUI windowed Popup tight insets (Small=4,1,4,8, Medium=10,2,10,18) for popup-hosted surfaces. The renderer now also exposes an internal bitmap-profile probe so tests can pin WPF peak-alpha, alpha-bounds, non-zero-pixel, and centroid metrics, and it is mapped against WinUI MockDComp geometry and pixel-master bounds before external full-screenshot comparison. The remaining WPF substitution is rasterization: WPF still lacks compositor ThemeShadow, so visual screenshot calibration remains the next step. See docs\theme-shadow-winui3-parity.md.

  • 2026-05-18 CornerRadius attached-property cleanup: ModernWpf uses WPF's built-in System.Windows.Controls.Border.CornerRadiusProperty directly for generated control APIs and template owners that can consume it. ControlHelper.CornerRadius remains only as an explicit WPF template-part carrier where Border.CornerRadius cannot be set or bound cleanly, replacing previous Tag carriers in NumberBox and ColorPicker. Templates no longer use Border.CornerRadius="..." as pseudo-attached XAML on arbitrary elements.

  • 2026-05-18 Repeater WPF ScrollViewer.ChangeView substitute: docs\repeater-winui3-source-audit.md now records that the old unconditional true return/TODO has been replaced with source-shaped handled/no-op behavior. The WPF substitute clamps requested offsets to the current scrollable range, reports true only when an offset change is applied, rejects NaN/infinite offset or zoom values, and documents valid zoom-only requests as an unsupported WPF no-op.

  • 2026-05-18 ModernWpf core control coverage guard: docs\modernwpf-core-control-source-coverage.md now maps every ModernWpf\ModernWpfControlsResources.xaml merged dictionary to source-audit evidence. TemplateParityTests.ModernWpfCoreControlSourceCoverageAuditCoversControlsResourcesInventory parses ModernWpfControlsResources.xaml directly, rejects missing/extra/duplicate rows, checks explicit source-backed/platform-mapping/shared-resource status buckets, and requires each row to point at existing evidence.

  • 2026-05-18 ModernWpf core resource coverage guard: docs\modernwpf-core-resource-source-coverage.md now maps every ModernWpf\Themes\Generic.xaml merged resource to source-audit evidence, complementing the official WPF Fluent stock-style coverage and the ModernWpf.Controls generic-resource coverage. TemplateParityTests.ModernWpfCoreSourceCoverageAuditCoversGenericResourceInventory parses Generic.xaml directly, rejects missing/extra/duplicate rows, checks explicit source-backed/substitution/compatibility status buckets, and requires each row to point at existing evidence.

  • 2026-05-18 WinUI 3 control source coverage guard: docs\winui3-control-source-coverage.md now maps every ModernWpf.Controls\Themes\Generic.xaml merged resource to source-audit evidence, complementing docs\official-fluent-style-coverage.md for stock WPF controls. TemplateParityTests.WinUIControlSourceCoverageAuditCoversGenericResourceInventory parses Generic.xaml directly, rejects missing/extra/duplicate rows, checks explicit source-backed status buckets, and requires each row to point at an existing source-audit document.

  • 2026-05-18 NavigationView shadow-caster state target completion: docs\navigationview-winui3-source-audit.md now records the WinUI ShadowCaster template target, TemplateSettings.OpenPaneLength clamp path, and PaneOverlayShadowDepth=16 shadow depth. The WPF template uses ThemeShadowChrome as the ShadowCaster part with a WPF TranslateTransform, compact-list and pane-collapsed states set ShadowCaster.Width, pane-not-overlaying sets ShadowCaster.Opacity, and RootSplitView.OpenPaneLength follows the source template-setting path. WinUI compositor ThemeShadow remains a renderer/platform substitution rather than a missing visual-state setter target.

  • 2026-05-18 CommandBarFlyout/AppBar input-mode completion: docs\commandbarflyout-winui3-source-audit.md and docs\appbarbutton-winui3-source-audit.md now record the WPF touch/default input-mode substitute for CommandBarFlyoutCommandBar. CommandBarFlyoutCommandBar captures the input mode used to open secondary commands, CommandBarFlyoutOverflowPanel keeps an owner back-reference so layout updates preserve that mode, and CommandBarFlyoutApiTests.FlyoutSecondaryCommandsUseTouchInputModeWhenOpenedByTouchLikeWinUISource guards that secondary AppBarButton / AppBarToggleButton entries enter TouchInputMode while primary commands remain default. Gamepad/remote remains a platform gap.

  • 2026-05-18 SplitButton default-template listener cleanup: docs\splitbutton-winui3-source-audit.md now records that the stale default-template VisualStateGroupListener bridge has been deleted. The default SplitButton template already carried source-shaped VisualStateEx.Setters, and the remaining unused listener had no WinUI source equivalent; SplitButtonApiTests.DefaultTemplateDoesNotUseLegacyVisualStateGroupListener guards against reintroducing it.

  • 2026-05-18 AppBarButton/AppBarToggleButton normal CommandBar input-mode completion: docs\appbarbutton-winui3-source-audit.md and docs\commandbar-winui3-source-audit.md now record the WinUI CommandBar::UpdateInputDeviceTypeUsedToOpen path. Normal CommandBar captures WPF touch/default input for overflow opens, propagates that mode through CommandBarOverflowPanel to secondary AppBar buttons, keeps primary commands in InputModeDefault, and resets moved/closed overflow commands. Gamepad/remote input-mode selection remains a documented platform gap.

  • 2026-05-18 SplitButton command-bar source-setter completion: docs\splitbutton-winui3-source-audit.md now records the WinUI SplitButtonCommandBarStyle state-setter slice. The command-bar style no longer uses a VisualStateGroupListener plus WPF ControlTemplate.Triggers relay for source states; it now uses VisualStateEx.Setters for common, checked, touch/key, and secondary-button placement states while keeping WPF Border substitutes for source command-bar background targets. The SplitButton row in docs\winui-visualstate-setters-audit.md is now Converted.

  • 2026-05-18 ColorPicker slider source-style completion: docs\colorpicker-winui3-source-audit.md now records the ColorPickerSliderStyle source-template slice. The previous stock WPF slider fallback was replaced with a color-picker-owned template carrying the source thumb chrome, CommonStates, focus-engagement state names, ColorPickerSlider* resources, and a WPF PART_Track substitute that keeps slider behavior functional. The ColorPicker row in docs\winui-visualstate-setters-audit.md is now Converted.

  • 2026-05-18 BreadcrumbBar focus-target setter completion: docs\breadcrumbbar-winui3-source-audit.md now records the remaining WinUI item-template focus-target setters. EllipsisDropDown and LastItem states now port WinUI Control.IsTemplateFocusTarget / FocusVisualMargin through FocusVisualHelper, the source item button and last-item presenter carry the source focus metadata, and the BreadcrumbBar row in docs\winui-visualstate-setters-audit.md is now Converted.

  • 2026-05-18 PagerControl source button style completion: docs\pagercontrol-winui3-source-audit.md now records the remaining source style delta for pager-owned buttons. PagerControlPageNavigationButtonStyle and PagerControlNumberPanelButtonStyle no longer rely on generic DefaultButtonStyle; they now use source-shaped templates with VisualStateEx.Setters, mirrored FontIcon navigation glyphs, ContentPresenterEx page-number chrome, and a template-local style alias so generated number-panel buttons receive the pager-owned style. The PagerControl row in docs\winui-visualstate-setters-audit.md is now Converted.

  • 2026-05-18 InfoBar close-button source-scope correction: docs\infobar-winui3-source-audit.md now records that WinUI's InfoBarCloseButtonStyle BasedOn="{StaticResource DefaultButtonStyle}" cannot be used as a raw WPF resource-scope copy from the InfoBar dictionary. ModernWpf keeps the source close button content/resource aliases and now uses a self-contained WPF close-button style that mirrors the default button chrome/template/trigger shape. docs\hyperlinkbutton-winui3-source-audit.md also records the source-named DefaultHyperlinkButtonStyle key while leaving the InfoBar action-slot base-style reference as a documented WPF scope substitution.

  • 2026-05-18 official WPF Fluent style coverage guard: docs\official-fluent-style-coverage.md maps every local PresentationFramework.Fluent\Styles source file to a ModernWpf artifact or explicit exception. TemplateParityTests.OfficialWpfFluentStyleCoverageAuditCoversSourceFolderInventory now fails if a source file is missing, duplicated, assigned an unknown status, or points at a missing ModernWpf artifact. This is the safe path for bulk official Fluent copying: backport stock WPF styles aggressively, but keep folded files, the custom Window shell, and excluded non-goal controls explicit.

  • 2026-05-18 RatingControl automation warning cleanup: docs\ratingcontrol-winui3-source-audit.md now records the C# automation-peer substitution for WinUI's unused C++ ratingString local. RatingControlSourceAuditTests keeps the source-backed value-provider/resource behavior covered while preventing the unused local from returning to the C# port.

  • 2026-05-18 Repeater source-audit suppression cleanup: docs\repeater-winui3-source-audit.md now covers ModernWpf.Controls\Repeater\GlobalSuppressions.cs as part of the source-shaped Repeater port. The old <Pending> analyzer justifications were replaced with explicit source-parity reasons for preserving source-shaped fields, signatures, animation hooks, viewport hooks, and WPF substitute signatures; RepeaterSourceAuditTests prevents those suppressions from drifting back to ambiguous pending debt.

  • 2026-05-18 Window official WPF Fluent shell audit: docs\window-wpf-fluent-source-audit.md maps WPF's stock Window style against PresentationFramework.Fluent. ModernWpf does not copy official Window.xaml wholesale because its style owns WindowTitleBarControl, WindowChrome, attached title-bar properties, high-contrast caption border, and WindowHelper.FixMaximizedWindow; the compatible surface now uses official WindowForeground / WindowBackground aliases and a plain WPF ContentPresenter for the content slot. The custom Light/Dark client border also mirrors Windows' DWM ColorPrevalence setting through the existing system-accent palette and setting/colorization message hook while retaining application WindowBorder overrides.

  • 2026-07-17 TitleBar Gallery pixel-parity audit: docs\titlebar-winui3-gallery-parity.md maps the retained preview against current WinUI TitleBar template metrics and official Gallery parent-surface ownership without reclassifying ModernWpf's legacy WPF shell as the newer WinUI TitleBar API. Exact 470x48 installed-Gallery crops now pass at Light 0.74 and Dark 0.82 under a strict 1.0 gate.

  • 2026-05-18 stock foundation/navigation official WPF Fluent style port: docs\foundation-navigation-wpf-fluent-source-audit.md maps ContentControl, HeaderedContentControl, ItemsControl, UserControl, Page, Frame, NavigationWindow, TextBlock, and generic Thumb styles against PresentationFramework.Fluent. ModernWpf now merges the official WPF Fluent stock foundation/navigation dictionaries, adds required shell theme aliases, aligns TextStyles.xaml to the official TextBlock style shape while retaining legacy text aliases, and documents why ModernWpf's custom Window.xaml remains a separate shell feature covered by docs\window-wpf-fluent-source-audit.md.

  • 2026-05-18 stock DataGrid official WPF Fluent style port: docs\datagrid-wpf-fluent-source-audit.md maps WPF's stock DataGrid style against PresentationFramework.Fluent. The previous ModernWpf-specific DataGridHelper, DataGridRowHelper, DataGridCellPresenter, ContentPresenterEx, FontIconFallback, row-group header, and expanded-cell template guesses were deleted for the stock DataGrid path; ModernWpf now imports the official WPF DataGrid templates, localized FallbackBrushConverter, and official DataGrid theme aliases with documented mscorlib and Border.CornerRadius substitutions.

  • 2026-05-18 stock TabControl official WPF Fluent style port: docs\tabcontrol-wpf-fluent-source-audit.md maps WPF's stock TabControl and TabItem styles against PresentationFramework.Fluent. The previous WinUI TabView-shaped default style, TabItemHelper, TabControlHelper, VisualStateEx, ThemeShadowChrome, and ContentPresenterEx stock-control guesses were deleted; ModernWpf now imports the official WPF templates with theme aliases for the official TabView-named brush keys and DefaultControlFocusVisualStyle.

  • 2026-08-08 Preview 5 TabView source port: docs\tabview-winui3-source-audit.md adds ModernWpf.Controls.TabView and TabViewItem as a separate current-WinUI-shaped control family without changing stock WPF TabControl. The port covers explicit and templated data items, content and selection fallback, close ownership, equal/content/compact widths, overflow, keyboard focus and accelerators, automation selection/scroll/collection notifications, drag/reorder, and the documented application-owned WPF Window tear-out/rejoin sequence. The Gallery replaces the retired generated facsimile with ten real-control examples and dedicated behavior/visual routing.

  • 2026-08-10 Preview 6 ItemsView foundations: docs\itemcontainer-winui3-source-audit.md, docs\linedflowlayout-winui3-source-audit.md, and docs\itemsview-scrolling-wpf-adaptation.md pin product 23a73be03d194ea0ece97da71de98b6b53021b70 and Gallery b78c440193aab788215888561e45adf72da848cb. ModernWpf adds the source-shaped public ItemContainer, LinedFlowLayout, item-collection transition family, ItemsRepeater provider integration, and an internal WPF ScrollViewer/controller bridge. Realization, recycling, selection, accessibility, layout, source-range metadata, line locking, transitions, and external-controller behavior are covered without publishing partial ItemsView, ScrollView, or ScrollPresenter shells.

  • 2026-05-18 stock ListBox / ListView / GridView official WPF Fluent style port: docs\listbox-listview-wpf-fluent-source-audit.md maps WPF's stock ListBox, ListBoxItem, ListView, ListViewItem, and GridView styles against PresentationFramework.Fluent. The previous stock-style WinUI-like ContentPresenterEx, FocusVisualHelper, ScrollViewerEx, and selection-active trigger guesses were deleted for these stock controls; ModernWpf now imports the official split dictionaries with documented substitutions for mscorlib, Border.CornerRadius, the existing GridView converter, and theme aliases. The separate custom ModernWpf.Controls.ListViewBase family remains WinUI-source-backed under docs\listview-winui3-source-audit.md.

  • 2026-05-18 stock TreeView official WPF Fluent style port: docs\treeview-wpf-fluent-source-audit.md maps WPF's stock TreeView and TreeViewItem styles against PresentationFramework.Fluent. The previous stock-style WinUI-like TreeViewItemHelper, indentation helper, VisualStateEx, ContentPresenterEx, FontIconFallback, and selected-state setter matrix were deleted for these stock controls; ModernWpf now imports the official split dictionaries with documented substitutions for mscorlib, Border.CornerRadius, dependency order, and retained legacy density aliases.

  • 2026-05-18 stock Calendar / DatePicker official WPF Fluent style port: docs\calendar-datepicker-wpf-fluent-source-audit.md maps WPF's stock Calendar and DatePicker styles against PresentationFramework.Fluent. The previous WinUI CalendarView / CalendarDatePicker stock-style mapping, VisualStateEx state groups, ContentPresenterEx presenter slots, and DatePickerHelper state driver were deleted for these stock controls; ModernWpf now imports the official WPF templates with documented substitutions for mscorlib, Border.CornerRadius, context-menu resource placement, and theme aliases.

  • 2026-05-18 Button official WPF Fluent style port: docs\button-wpf-fluent-source-audit.md maps WPF's styled platform Button against PresentationFramework.Fluent. The previous WinUI VisualStateEx helper template was deleted for stock Button; default and accent button chrome now uses official WPF ControlTemplate.Triggers, DefaultButtonStyle targets ButtonBase, accent is self-contained, and ModernWpf-only SubtleButtonStyle keeps its public resource aliases while adopting the same trigger/template shape.

  • 2026-05-18 RadioButton official WPF Fluent style port: docs\radiobutton-wpf-fluent-source-audit.md maps WPF's styled platform RadioButton against PresentationFramework.Fluent. The previous WinUI VisualStateEx helper template was deleted for stock RadioButton; checked, disabled, pointer-over, pressed, and right-to-left behavior now uses official WPF Trigger / MultiTrigger entries, WPF MouseOver state naming, and a WPF ContentPresenter.

  • 2026-07-18 RepeatButton current-source and pixel lock: docs\repeatbutton-wpf-fluent-source-audit.md verifies that current dotnet/wpf main Fluent blobs remain byte-identical to the audited stock-control template and maps the live sample to current WinUI Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. The source 112x32 button and common 240x32 click-output row now have strict exact-size gates; Light passes at 3.23 / 8.79 and Dark at 2.55 / 10.71. The output comparison resolves WinUI's real Control1Output ID instead of silently cropping the button, while source Button/Text automation roles, Invoke, polite live setting, and LiveRegionChanged behavior are pinned.

  • 2026-07-18 ToggleButton current-source and pixel lock: docs\togglebutton-wpf-fluent-source-audit.md verifies that current dotnet/wpf main Fluent blobs remain byte-identical to the audited stock template and maps the sample to current WinUI Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Exact 107x32 resting crops pass at Light 2.98 / Dark 2.62 under a 3.0 gate; exact 127x52 checked crops pass at 6.31 / 6.98 under 7.0. Both apps must now transition Off to On through UIA and expose source output On; Button/Text automation roles and the Toggle provider are pinned.

  • 2026-05-18 Slider official WPF Fluent style port: docs\slider-wpf-fluent-source-audit.md maps WPF's styled platform Slider against official PresentationFramework.Fluent. The previous WinUI VisualStateEx helper port was deleted; the template now follows the official WPF Fluent trigger model, WPF MouseOver thumb state, selection-range trigger behavior, and 20px thumb metrics.

  • 2026-05-18 CheckBox official WPF Fluent style port: docs\checkbox-wpf-fluent-source-audit.md maps WPF's styled platform CheckBox against PresentationFramework.Fluent. The previous WinUI VisualStateEx helper template and CheckBoxHelper state driver were deleted for stock CheckBox; checked, indeterminate, disabled, pointer-over, pressed, and empty-content behavior now uses official WPF Trigger / MultiTrigger entries, WPF text glyphs, and a WPF ContentPresenter.

  • 2026-05-18 RichTextBox official WPF Fluent style port: docs\richtextbox-wpf-fluent-source-audit.md maps WPF's styled platform RichTextBox against PresentationFramework.Fluent. The previous WinUI-like header, placeholder, description, ContentPresenterEx, and RichTextBoxHelper path was deleted for stock RichTextBox; chrome now uses official WPF ControlTemplate.Triggers, ContentBorder, and PART_ContentHost, with documented ModernWpf substitutions for text context menu, validation adorner routing, and corner radius.

  • 2026-05-18 TextBox / PasswordBox official WPF Fluent style port: docs\textbox-passwordbox-wpf-fluent-source-audit.md maps WPF's stock TextBox, TextBoxBase, and PasswordBox styles against PresentationFramework.Fluent. The previous WinUI-like header, placeholder, description, reveal-button, helper visual-state, and ContentPresenterEx template branches were deleted for these stock controls; chrome now uses official WPF ControlTemplate.Triggers, ContentBorder, PART_ContentHost, and the official TextBox clear-button layout, with documented substitutions for text context menus, validation routing, corner radius, the older-target clear-button click hook, and DataGridTextBoxStyle.

  • 2026-05-18 ToolTip official WPF Fluent style port: docs\tooltip-wpf-fluent-source-audit.md maps WPF's styled platform ToolTip against PresentationFramework.Fluent. The previous WinUI-like ThemeShadowChrome / ContentPresenterEx chrome surface was deleted for stock ToolTip; the template now uses official WPF Border, plain WPF ContentPresenter, system status font resources, DropShadowEffect, and the official tooltip foreground/background aliases.

  • 2026-05-18 Label official WPF Fluent style port: docs\label-wpf-fluent-source-audit.md maps WPF's styled platform Label against PresentationFramework.Fluent. The previous ModernWpf Border / ContentPresenterEx template and disabled trigger were deleted for stock Label; the style now follows official WPF Fluent's setter-only surface and official LabelForeground theme alias.

  • 2026-05-18 GroupBox official WPF Fluent style port: docs\groupbox-wpf-fluent-source-audit.md maps WPF's styled platform GroupBox against PresentationFramework.Fluent. The previous ModernWpf ContentPresenterEx header/content slots and spacing guesses were deleted for stock GroupBox; the template now uses official WPF Border, Grid, two plain WPF ContentPresenter slots, official GroupBox metrics, and official GroupBox theme aliases.

  • 2026-05-18 StatusBar official WPF Fluent style port: docs\statusbar-wpf-fluent-source-audit.md maps WPF's styled platform StatusBar and StatusBarItem against PresentationFramework.Fluent. The previous ModernWpf ContentPresenterEx StatusBarItem slot and old disabled foreground guess were deleted for stock StatusBarItem; the style now uses the official WPF StatusBar setter surface, official separator chrome, plain WPF ContentPresenter, disabled item triggers, and official StatusBarItem theme aliases.

  • 2026-05-18 ResizeGrip official WPF Fluent style port: docs\resizegrip-wpf-fluent-source-audit.md maps WPF's styled platform ResizeGrip against PresentationFramework.Fluent. The previous ModernWpf tiled Path / DrawingBrush resize glyph and scrollbar-size metrics were deleted for stock ResizeGrip; the template now uses official WPF TextBlock glyph chrome, official size/glyph resources, SymbolThemeFontFamily, and the official ResizeGripForeground theme alias.

  • 2026-05-18 GridSplitter official WPF Fluent style port: docs\gridsplitter-wpf-fluent-source-audit.md maps WPF's styled platform GridSplitter against PresentationFramework.Fluent. The previous ModernWpf solid bar and preview-style guess were deleted for stock GridSplitter; the template now uses the official WPF Border / PART_Thumb rectangle shape, official metrics, WPF triggers for hover/drag/disabled/orientation, and official Gridsplitter* theme aliases.

  • 2026-05-18 Hyperlink official WPF Fluent style port: docs\hyperlink-wpf-fluent-source-audit.md maps WPF's styled platform Hyperlink against PresentationFramework.Fluent. The previous ModernWpf pressed-helper trigger, cursor trigger, hover secondary color, and unused underline resource were deleted for stock Hyperlink; the style now follows official WPF Fluent's setter/trigger surface, including underline removal on pointer-over and HyperlinkForegroundDisabled.

  • 2026-05-18 GroupItem official WPF Fluent style port: docs\groupitem-wpf-fluent-source-audit.md maps WPF's styled platform GroupItem and grouped-header data template against PresentationFramework.Fluent. The previous ModernWpf ListViewHeaderItem wrapper, DefaultGroupItemStyle key, and OverridesDefaultStyle guess were deleted for stock GroupItem; the style now uses official WPF ContentPresenter / ItemsPresenter template shape and the official CollectionViewGroup.Name data template.

  • 2026-05-18 Menu family official WPF Fluent style port: docs\menu-family-wpf-fluent-source-audit.md maps WPF's stock Menu, ContextMenu, and MenuItem styles against PresentationFramework.Fluent. The previous ModernWpf VisualStateEx, ContentPresenterEx, BorderEx, ThemeShadowChrome, MenuPopup, and menu-helper guesses were deleted for these stock controls; the styles now use official WPF role templates, Popup submenu hosts, plain WPF presenters, and official menu/context/flyout theme aliases.

  • 2026-05-18 ToolBar family official WPF Fluent style port: docs\toolbar-family-wpf-fluent-source-audit.md maps WPF's stock Separator, generic Thumb, ToolBar, and ToolBarTray styles against PresentationFramework.Fluent. ModernWpf now ships the official WPF Fluent toolbar family through StockControlsResources, with documented substitutions for split-dictionary StaticResource dependency lookup, older-target thumb corner radius, and the missing upstream MenuBorderColorDefaultBrush alias.

  • 2026-05-18 stock ProgressBar official WPF Fluent style port: docs\stock-progressbar-wpf-fluent-source-audit.md maps WPF's stock ProgressBar style against PresentationFramework.Fluent. The previous stock-style wrapper that instantiated ModernWpf.Controls.ProgressBar was deleted; the stock WPF style now uses the official WPF Fluent TemplateRoot, TrackBorder, PART_Track, PART_Indicator, Indicator, and Animation visual tree with official WPF Determinate / Indeterminate states and orientation / indeterminate triggers. The separate ModernWpf.Controls.ProgressBar remains WinUI-source-backed under docs\progressbar-winui3-source-audit.md.

  • 2026-05-18 ScrollViewer official WPF Fluent style port: docs\scrollviewer-wpf-fluent-source-audit.md maps WPF's stock ScrollViewer default style against PresentationFramework.Fluent. The stock default style no longer carries the previous ModernWpf focus, border, background, corner-radius, automation-id, or explicit scroll-content guesses; the default template now uses the official WPF Fluent grid shape with PART_ScrollContentPresenter, PART_VerticalScrollBar, and PART_HorizontalScrollBar. ModernWpf-specific TextControlContentHostStyle is retained as a documented support resource for text-entry templates.

  • 2026-05-18 ScrollBar official WPF Fluent style port: docs\scrollbar-wpf-fluent-source-audit.md maps WPF's stock ScrollBar primitive style against PresentationFramework.Fluent. The previous WinUI-derived auto-hide, panning-thumb, ScrollBarHelper, and setter-backed visual-state template guesses were deleted for the stock control; the style now uses official WPF Fluent line-button, page-button, thumb, vertical template, horizontal template, orientation-trigger, and pointer-over expansion behavior, with a documented Border.CornerRadius substitution for older WPF targets.

  • 2026-05-17 ListView / GridView source port: docs\listview-winui3-source-audit.md maps ListViewBase, item interaction, ListViewItem/GridViewItem source state names, common styles, and upstream tests against local WinUI 3 source. The old WPF trigger-driven guessed item visual implementation was deleted in favor of VisualStateEx.Setters, source CommonStates and multiselect state names, source own-container ItemClick behavior, and brush-typed focus visual properties; WPF substitutions are documented for ListViewItemPresenter, duplicate visual-state names, and WPF ListBoxItem selection.

  • 2026-07-18 GridView/ListView current-source and accessibility refresh: the custom family is pinned to official product de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery 29f62479d5c046a0b854a5868e5a7cd484572d87. The shared peers now expose current ListView / GridView and ListViewItem / GridViewItem class names, explicit List/ListItem roles, and Invoke only while IsItemClickEnabled is true. Current source history adds only an allocation-only dragged-items reserve and equivalent perf2026 setter resources; the converted Gallery retains its three current SampleDefinition examples. Fresh exact 657x412 crops pass the strict 2.0 gate at Light 1.61 and Dark 1.60; required You clicked Item 1. crops pass the 8.0 raster and four-pixel metric gates at 6.40 / 6.64, with fresh Light/Dark recordings proving selection and output change.

  • 2026-07-25 ListView/GridView touch-panning completion: issue #343 reproduced because both custom collection styles left the WPF ScrollViewer.PanningMode attached property at None. The styles now use Both; each templated ScrollViewerEx binds the mode from its parent and enters WPF's native touch-manipulation scrolling path while scrollbar visibility continues to constrain the available axes.

  • 2026-07-26 GridView horizontal-wheel completion: issue #162 reproduced with horizontal overflow and no vertical extent because WPF maps mouse-wheel input only to its vertical scrolling path. ScrollViewerEx now preserves vertical priority and otherwise delegates to WPF IScrollInfo.MouseWheelLeft / MouseWheelRight, retaining platform scroll units and virtualizing-panel behavior. The exact custom GridView regression is locked in ListViewApiTests.

  • 2026-07-19 VariableSizedWrapGrid / WrapGrid / ItemsWrapGrid current-source refresh: docs\variablesizedwrapgrid-winui3-source-audit.md pins 17 official product blobs at commit de3e767333c2f0717a6a70cb22bd192ced5ad885; every blob is byte-identical across the old/current roots. Source-derived geometry tests retain first-item sizing, wrapping, spans, alignment, and finite occupancy; current Gallery has no standalone family page, while its GridView customization still consumes a live MaxItemsWrapGrid. Native recycling/cache/group/keyboard services remain explicit WPF boundaries.

  • 2026-05-18 Expander official Fluent replacement: docs\expander-wpf-fluent-source-audit.md maps stock WPF Expander to PresentationFramework.Fluent\Styles\Expander.xaml. The prior WinUI-shaped VisualStateEx / ToggleButtonHelper / ContentPresenterEx template guesses were deleted because official WPF Fluent is the primary source for stock WPF controls.

  • 2026-05-17 Repeater / ItemsRepeater layouts whole-family source audit: docs\repeater-winui3-source-audit.md maps ItemsRepeater, ViewportManager, layouts, item-template/recycle/source-view helpers, selection model, and upstream API tests against local WinUI 3 source. The files were already source-derived rather than guessed WPF wrappers; this slice closes the stale WinUI 2-era classification and ports the missing source StackLayout measure-cycle guard plus viewport GetLayoutExtent hook.

  • 2026-05-17 MenuBar whole-control source port: docs\menubar-winui3-source-audit.md maps MenuBar, MenuBarItem, MenuBarItemFlyout, default style, automation peers, and upstream tests against local WinUI 3 source. ModernWpf deleted the guessed WPF Menu / MenuItem wrapper, MenuBarStyleHelper, and test-only shim; the WPF port now owns the source-shaped item collection, ItemsControl template host, flyout item mirroring, source-style visual states through VisualStateEx.Setters, and MenuBar/MenuBarItem automation peers.

  • 2026-07-18 IconSource / ImageIcon current-source and pixel refresh: docs\iconsource-imageicon-winui3-source-audit.md pins the family to official commit de3e767333c2f0717a6a70cb22bd192ced5ad885. ModernWpf already used current WinUI's optimized direct Image child, and now also enforces base IconSource Foreground application for custom sources and ports the missing SharedHelpers.MakeIconElementFrom(ImageIconSource) branch. Dedicated bitmap ImageIcon comparisons use exact 100x89 crops and pass the strict 2.0 gate at Light 1.49 and Dark 1.17.

  • 2026-07-18 ProgressBar current whole-control refresh: docs\progressbar-winui3-source-audit.md pins ProgressBar, template settings, automation peer, generated API, template/theme resources, API/interaction tests, and the current two-example Gallery surface. ModernWpf follows source visibility-gated indeterminate state selection, border-aware width math, paused/error sizing, animation keyframes, and status automation-name prefixing. The documented WPF substitutions now include the DPI-aware, cap-inset one-scanline overlay that reduces exact 130x3 Light/Dark control crops to 0.43 without changing source geometry. The separate stock WPF ProgressBar remains owned by its Fluent audit and route.

  • 2026-05-17 LayoutPanel whole-control source port: docs\layoutpanel-winui3-source-audit.md maps LayoutPanel and LayoutPanelLayoutContext against local WinUI 3 source. ModernWpf now documents the existing source-shaped measure/arrange and layout replacement behavior, deletes stale dead context-enumerator code, and adds focused coverage that old layout invalidation handlers are revoked when Layout changes.

  • 2026-07-19 RadioMenuFlyoutItem current-source, Gallery-consumer, behavior, and accessibility refresh: docs\radiomenuflyoutitem-winui3-source-audit.md pins official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, byte-current runtime/API/classic-theme/interaction/TestUI/inherited-peer blobs, and the equivalent two-setter perf2026 dictionary. ModernWpf retains weak group selection, guarded uncheck, load/unload map lifetime, submenu check mirroring, current mark/metrics/states, and the current Gallery groups/defaults. New product and Gallery tests prove MenuItem role/name, Toggle state, group replacement, and refusal to toggle the selected item off. Product/source tests pass 9/9 and focused Gallery coverage passes 3/3 on net8/net10. Existing MenuFlyout visual/recording artifacts are explicitly shared presenter/chrome evidence, not isolated radio-item pixel proof.

  • 2026-05-17 WrapPanel whole-control source port: docs\wrappanel-winui3-source-audit.md maps WrapPanel, generated dependency-property metadata, and upstream API tests against local WinUI 3 source. ModernWpf now follows the source arrange row-cache rule, refreshing rows during arrange only when the arranged primary-axis size is smaller than the measured desired size, and documents WPF substitutions for dependency-property metadata, collapsed arrange cleanup, and WPF desired-size clamping.

  • 2026-05-18 stock ComboBox official WPF Fluent style port: docs\combobox-wpf-fluent-source-audit.md maps WPF's stock ComboBox and ComboBoxItem styles against PresentationFramework.Fluent. The previous WinUI-shaped ComboBoxHelper, editable split-corner runtime helper, VisualStateEx, ContentPresenterEx, and FontIconFallback stock-style guesses were deleted; ModernWpf now imports the official WPF template shape with documented substitutions for mscorlib, Border.CornerRadius, retained DataGrid adapter style keys, and the classic WPF editable IsTabStop=False setter that prevents backward and Ctrl+Tab focus traps.

  • 2026-05-17 ContentDialog whole-control source port: docs\contentdialog-winui3-source-audit.md maps ContentDialog, source event args/deferrals, ContentDialogMetadata, CommonStyles resources, and native integration tests against local WinUI 3 source. ModernWpf now treats the old WPF-written dialog surface as a source-backed WPF port with documented substitutions, including source template-part metadata, default-button visual-state suppression while focus is inside the command area on a non-default button, source-shaped Enter handling that invokes only an explicit enabled DefaultButton, and source-shaped Escape/back ExecuteCloseAction behavior that programmatically clicks the close button and honors CloseButtonClick cancellation before falling back to Hide(None).

  • 2026-07-18 AutoSuggestBox current-source, Gallery, behavior, accessibility, and pixel lock: docs\autosuggestbox-winui3-source-audit.md now pins official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, current runtime/event-args/peer/list/XamlOM/helper/theme/test blobs, the equivalent perf2026 setter dictionary, and the current two-example Gallery page/snippets. Every classic product source remains a byte-identical root move. ModernWpf retains source counter/CheckCurrent, user-text restoration, query/suggestion ordering, list selection, Invoke Group peer, popup shadow/corners, current Gallery filtering/search behavior, and documented WPF adapters. Fresh exact 300x32 resting crops pass Light and Dark at 0.01 under 0.1 with zero size tolerance. Current diagnostic proof shows ModernWpf's real-keyboard ae to nonblank Aegean popup/output, while the installed reference still exposes no suggestions and is explicitly unavailable as a cross-app interaction gate. Product/source tests pass 12/12, Gallery/source-shape tests pass 4/4 on net8/net10, and net462 builds warning-free.

  • 2026-07-18 SplitView current-source, Gallery, behavior, accessibility, and pixel lock: docs\splitview-winui3-source-audit.md pins official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, byte-current runtime/peer/XamlOM/theme/test blobs, the equivalent perf2026 setter dictionary, and the current converted one-example Gallery page/snippet. ModernWpf retains the source state table, measured Auto pane math, cancelable light dismiss, focus/close behavior, right-inline transitions, and current Gallery options. It now also ports the missing conditional modal Window peer on PaneRoot and Button/Invoke Close peer on LightDismissLayer. Fresh current captures remain exact 400x300: Light 3.23 against the cached same-installation Light reference and Dark 3.37 fully live, both under 4.0 with zero size tolerance. Product/source tests pass 16/16, Gallery/source-shape tests pass 3/3 on net8/net10, and net462 builds with zero errors and no SplitView warnings.

  • 2026-07-18 PersonPicture current-source, Gallery, behavior, accessibility, and pixel lock: docs\personpicture-winui3-source-audit.md pins official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, byte-current runtime/generated/initials/peer/template/theme/test/verification blobs, and the current converted one-example Gallery page/snippet/UI test. Every audited product file is a byte-identical source-root move and the Gallery page is unchanged after conversion, so no product rendering change is justified. ModernWpf retains image/contact/initials priority, reusable template settings, circular size and badge math, localized automation names, Text/PersonPicture peer shape, current resources, and documented WPF Contact/text-platform adapters. Fresh fully live Light/Dark installed-Gallery crops remain exact 96x96 at 0.39 / 0.35 under 0.5 with newly enforced zero size tolerance. Product/source tests pass 10/10, Gallery/source-shape tests pass 4/4 on net8/net10, and net462 builds warning-free.

  • 2026-07-18 ThemeShadow current-source, Gallery, redraw, and pixel lock: docs\theme-shadow-winui3-parity.md and docs\theme-shadow-source-coverage.md pin official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, current renderer/manager/elevation/partial/test/pixel-master blobs, and the unchanged converted one-example Gallery page/snippets. The root move is otherwise byte-stable; the only substantive current source change makes projected-shadow receiver traversal explicitly newest-first, which the per-host WPF substitution does not share. The audit exposed nondeterministic redraw through the private cached WPF visual: ThemeShadowChrome now propagates its resolved theme into the renderer and invalidates the cached background plus owner when theme or corner radius changes. Current-source PNG-master lookup accepts both the source-root and older src-nested layouts. Fresh post-fix fully live Light/Dark installed-Gallery crops remain exact 272x272 at 0.22 / 0.12 under 0.3 with zero size tolerance. Product/source tests pass 33/33, the current-source PNG opt-in passes 1/1, Gallery/source-shape tests pass 3/3 on net8/net10, and the net462 Controls build succeeds with zero errors.

  • 2026-07-18 TitleBar current-source, Gallery, behavior, accessibility, interaction, and pixel lock: docs\titlebar-winui3-gallery-parity.md pins official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, root move 8463f45162149de0ec3ad7df752596893fe3e13e, Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, the current runtime/generated/IDL/peer/settings/theme/resource/test blobs, and Gallery change 9a14fa563584b19c06e3baccf10664a12f84fad5. Product semantics remain stable; the Gallery now has stretchable 580-DIP Search... content, a drag-region/dynamic-content window, and the end-to-end window. ModernWpf retains its documented WPF shell adapter because the static TitleBar attached-property facade reserves the WinUI class name, adds the source TitleBar automation role/class/title fallback, mirrors all three Gallery examples, and substitutes WPF DragMove plus the live visual/input tree for InputNonClientPointerSource. Fresh fully live Light/Dark installed-Gallery crops remain exact 470x48 at 0.74 / 0.82 under 1.0 with zero size tolerance; fresh option recordings pass at local deltas 6.819 / 7.897. Product/source tests pass 11/11, Gallery/source-shape tests pass 2/2 on net8/net10, and net462 Controls/Gallery builds succeed with zero errors.

  • 2026-07-18 InfoBadge current-source, Gallery, behavior, accessibility, interaction, and pixel lock: docs\infobadge-winui3-source-audit.md pins official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, root move 8463f45162149de0ec3ad7df752596893fe3e13e, Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, every runtime/generated/IDL/template/settings/theme/test blob, and the unchanged four-example converted Gallery page/snippets. The audit fixed a subtle public template-settings mismatch: ModernWpf now retains the last generated IconElement when returning to dot mode, exactly as source, while visual states hide it. It also pins the current accessibility boundary—no standalone InfoBadge peer, with Inbox, 5 notifications owned by the NavigationViewItem—and makes exact-size tolerance explicitly zero. Fresh fully live Light/Dark installed-Gallery crops remain exact 16x16 at 4.44 / 3.73 under 5.0; opacity recordings pass at local deltas 4.072 / 3.393. Product/source/raster tests pass 12/12, Gallery/source-shape tests pass 3/3 on net8/net10, the net462 Controls build succeeds with 18 existing unrelated warnings and zero errors, and Gallery builds warning-free.

  • 2026-05-17 RadioButtons whole-control source port: docs\radiobuttons-winui3-source-audit.md maps RadioButtons, RadioButtonsElementFactory, RadioButtonsAutomationPeer, ColumnMajorUniformToLargestGridLayout, and test hooks against local WinUI 3 source. The old "ported existing WPF surface" classification is closed; ModernWpf now carries the source automation peer, source MaxColumns validation, source template-owned layout binding via a WPF BindingProxy, source DataTemplateSelector factory handling, and documented WPF substitutions for focus/gamepad, access keys, child-handler revokers, and WPF automation metadata.

  • 2026-05-17 ColorPicker / ColorSpectrum whole-control source port: docs\colorpicker-winui3-source-audit.md maps ColorPicker, ColorSpectrum, ColorPickerSlider, and shared color conversion helpers against local WinUI 3 source. ModernWpf deleted the old guessed RootPanel / gradient-only spectrum / one-way text-box implementation and now follows source-shaped RootGrid, ColorSpectrumGrid, TextEntryGrid, bitmap-backed spectrum maps, HsvColor state ownership, source third-dimension slider channel mapping, RGB/HSV/alpha/hex text validation, More button text-entry state, and value-pattern automation. WPF substitutions remain documented for SpectrumBrush, async software bitmap creation, localized resource strings, WinRT UIA notifications, and raw TestUI pointer automation.

  • 2026-05-17 AnnotatedScrollBar whole-control source port: docs\annotatedscrollbar-winui3-source-audit.md maps AnnotatedScrollBar, event args, labels, panning info, and scroll-controller primitives against local WinUI 3 source. The old guessed PART_Rail / PART_LabelsHost / ItemsControl implementation and nearest-label detail fallback were deleted in favor of source-shaped vertical parts, label grid layout, hover tooltip/thumb ghost, cancelable scrolling, IScrollController request events, source small-change direction, and documented WPF substitutes for ScrollPresenter and composition panning.

  • 2026-05-17 TeachingTip whole-control source port: docs\teachingtip-winui3-source-audit.md maps TeachingTip, template settings, opened/closing/closed args, and automation peer behavior against local WinUI 3 source. ModernWpf replaced the old functional-subset classification with source-shaped Opened event timing, TeachingTipOpenedEventArgs, TeachingTipAutomationPeer, and WPF IWindowProvider state while documenting WPF popup, placement, and WinRT automation-event substitutions.

  • 2026-05-17 PagerControl whole-control source port: docs\pagercontrol-winui3-source-audit.md maps PagerControl, PagerControlTemplateSettings, and PagerControlAutomationPeer against local WinUI 3 source. The old guessed PART_RootPanel / PART_NumberPanel manual page-button implementation was deleted in favor of the source RootGrid, NumberBoxDisplay, ComboBoxDisplay, ItemsRepeater number panel, indicator, display-mode visual states, finite/infinite collection sizing, ellipsis algorithms, source-owned pager button templates, source automation peer shape, and source resource strings.

  • 2026-05-17 BreadcrumbBar whole-control source port: docs\breadcrumbbar-winui3-source-audit.md maps BreadcrumbBar, BreadcrumbBarItem, BreadcrumbElementFactory, BreadcrumbIterable, and BreadcrumbLayout against WinUI 3 source. The old guessed PART_RootPanel / manual StackPanel rebuild path was deleted in favor of the source ItemsRepeater, leading ellipsis item, non-virtualizing breadcrumb layout, source item-type visual states, ellipsis dropdown repeater, source resource aliases, and source item-click index mapping.

  • 2026-05-17 RatingControl whole-control source port: docs\ratingcontrol-winui3-source-audit.md maps RatingControl against local WinUI 3 source. The WPF-only RatingItemPathInfo helper, path templates, path theme resources, and path fallback tests were deleted because current WinUI 3 source only has RatingItemFontInfo and RatingItemImageInfo. The template now follows source MinHeight, LayoutRoot.Background, CaptionStackPanel, caption, translate-transform, and foreground/background star-panel shape; the implementation now follows source resource caching, scaled glyph measurement, net stack-panel spacing, 12px caption spacing, first-item pointer offset, and pointer-capture tracking with documented WPF substitutions.

  • 2026-05-17 InfoBadge whole-control source port: docs\infobadge-winui3-source-audit.md maps InfoBadge and InfoBadgeTemplateSettings against WinUI 3 source. The WPF template now uses source-shaped RootGrid chrome through GridEx, source InfoBadge theme resources, source display-state margins, source animated state transitions, and the WinUI 3 InformationalDotInfoBadgeStyle solid-neutral background instead of the old default accent background.

  • 2026-07-17 InfoBadge pixel-parity refresh: current WinUI's SizeChanged radius update exposed a WPF first-frame lifecycle gap when InfoBadge was hosted inside NavigationView. ModernWpf now pre-seeds the same height / 2 radius before WPF template arrangement while retaining the source callback. Exact 16x16 installed-Gallery crops pass a strict 5.0 gate at Light 4.44 and Dark 3.73, down from the square-badge 40.57 failure; rendered-host tests prove transparent corners and an accent-filled center.

  • 2026-05-17 InfoBar whole-control source port: docs\infobar-winui3-source-audit.md maps InfoBar, InfoBarPanel, and InfoBarAutomationPeer against WinUI 3 source. The WPF port replaced the old manual content-row adjustment with the source BannerContent / NoBannerContent visual states, added source close/icon automation strings, source visibility bookkeeping, source close-button content/resource aliases, and documents WPF substitutions for WinUI automation notifications, default-button style resource scope, and accessibility-view metadata.

  • 2026-05-17 PersonPicture whole-control source port: docs\personpicture-winui3-source-audit.md maps PersonPicture, PersonPictureTemplateSettings, InitialsGenerator, and the automation peer against WinUI 3 source. The WPF-only placeholder icon/geometry template path was deleted in favor of WinUI's single InitialsTextBlock placeholder state model, the source chrome bindings and PreferSmallImage API were added, and the remaining Contact / text-platform differences are documented WPF substitutions.

  • 2026-07-17 PersonPicture pixel-parity refresh: the installed-Gallery comparison now crops the rendered avatar rather than its radio option. Exact 96x96 Light and Dark crops score 0.39 / 0.35 and are protected by a strict 0.5 gate; no product change was required.

  • 2026-07-17 SelectorBar pixel-parity refresh: docs\selectorbar-winui3-source-audit.md maps SelectorBar, SelectorBarItem, and SelectorBarItemAutomationPeer against WinUI 3 source. The source item metrics remain exact, while a render-only one-pixel WPF baseline adjustment is applied only to PART_TextVisual and mirrored by the source-backed Gallery template. Installed WinUI Gallery comparisons now have exact 284x48 crops at Light 1.99 and Dark 2.58, protected by a strict 3.0 gate.

  • 2026-07-18 SplitButton / ToggleSplitButton current-source, Gallery, behavior, accessibility, and pixel lock: docs\splitbutton-winui3-source-audit.md now pins official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, every substantive product blob, and the reorganized 2026 Gallery pages/snippets. Product history contains only the source-root move and perf2026 project packaging. The WPF port follows source flyout revokers/show options, key/command/toggle ordering, state routing, split-border chrome, and mutually exclusive Invoke/Toggle accessibility. The Gallery RichTextBox adapter now removes list formatting when unchecked like the current RichEditBox sample. Fresh exact SplitButton 71x32 crops pass Light 0.46 / Dark 0.37 under 1.0; exact ToggleSplitButton 78x33 crops pass Light 1.62 / Dark 0.98 under 2.0. Both now enforce zero size tolerance and retain separate secondary-flyout proof.

  • 2026-07-19 DropDownButton current-source refresh: docs\dropdownbutton-winui3-source-audit.md pins official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, current Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, root-move-only bounded history, setter-equivalent perf2026 states, replacement-flyout accessibility behavior, and the unchanged Email/icon Email examples. Fresh exact 78x32 Light/Dark crops pass at 3.68 / 2.69 under 4.0, and both OpenRepeat recordings pass.

  • 2026-07-18 NumberBox current-source, Gallery, behavior, accessibility, and pixel lock: docs\numberbox-winui3-source-audit.md now pins official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, current generated/runtime/parser/peer/template/theme/test blobs, the perf2026 setter variant, and all three current Gallery examples/snippets. Product history is otherwise byte-current after the source-root move; the only runtime edit moves the unchanged whitespace table to a function-local constant to eliminate a native DLL initializer, already equivalent to WPF String.Trim. The existing WPF port retains source template lifecycle, parser/formatter/rounding, key/wheel/step/wrap behavior, placement/enabled states, UIA forwarding, RangeValue Spinner peer, resources, and documented popup/TextBox adapters. Fresh exact resting 132x59 crops pass Light 1.84 / Dark 1.74 under 2.5; exact value-changed 152x79 crops pass 1.69 / 1.02 under a new 2.0 interaction gate. Both size tolerances are zero. Product/source tests pass 18/18, focused Gallery tests pass 2/2 on net8 and net10, and the net462 build is warning-free.

  • 2026-07-19 HyperlinkButton current-source, Gallery, behavior, accessibility, and pixel refresh: docs\hyperlinkbutton-winui3-source-audit.md pins official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, and current runtime/API/XamlOM/peer/classic/perf2026/native-test plus Gallery page/snippet blobs. Every classic source is byte-current after the root move; perf2026 only converts nine state assignments to equivalent setters already represented locally. ModernWpf retains NavigateUri/no TargetName, source click order, Hyperlink/Invoke accessibility with disabled rejection, current resources/states, two Gallery examples, and exact 157x32 geometry. Light/Dark pass at 1.48 / 1.47 under 1.6; product/source tests pass 5/5 and Gallery tests pass 3/3 on net8/net10.

  • 2026-07-19 current WinUI port inventory lock: docs\winui3-control-source-coverage.md remains one-to-one with all 33 shipped ModernWpf.Controls\Themes\Generic.xaml resources, and every *winui3-source-audit.md document now pins product authority de3e767333c2f0717a6a70cb22bd192ced5ad885. TemplateParityTests now rejects a missing/extra/duplicate resource row, missing evidence, a shrunken audit inventory, or any audit that loses the current product pin.

  • 2026-07-18 ProgressRing current whole-control refresh: docs\progressring-winui3-source-audit.md pins the current control, generated properties, determinate/indeterminate Lottie sources, template/theme, peer, tests, and current Gallery page/snippets. The WPF port uses source LayoutRoot / LottiePlayer, current common states, inactive opacity, update ordering, range coercion, theme resources, automation, and generated 32x32 animation geometry through its documented native WPF arc/storyboard substitute. Deterministic exact 60x60 proof passes Light 0.64 / Dark 0.63 under a 1.0 gate and newly explicit zero size tolerance.

  • 2026-07-19 layout-chrome current-source refresh: docs\layout-chrome-winui3-source-audit.md pins current Border/Grid/StackPanel/ContentPresenter/framework/XamlOM/integration inputs at de3e767333c2f0717a6a70cb22bd192ced5ad885. Layout sources remain byte-current; newer framework changes are internal OptimizeApplyStyles, resource, event, type-bit, tracing, and ApplyTemplate work with no chrome/layout semantic change. The 96-DPI renderer now detaches its windowless GridEx after sampling, eliminating same-process render-channel contamination; the complete chrome/layout slice passes 56/56.

  • 2026-05-17 layout text-property inheritance: WinUI XamlOM marks Control.CharacterSpacing, Control.IsTextScaleFactorEnabled, ContentPresenter.CharacterSpacing, and ContentPresenter.IsTextScaleFactorEnabled as inherited text-formatting properties that affect measure. ModernWpf now shares the ControlHelper dependency-property identity with ContentControlEx and ContentPresenterEx, adds WPF inheritance metadata, and tests inherited presenter values plus local-value precedence.

  • 2026-05-17 CommandBarFlyout whole-control source port: the stale in-progress marker is closed. docs\commandbarflyout-winui3-source-audit.md maps CommandBarFlyout and CommandBarFlyoutCommandBar against WinUI 3 source; the WPF port now follows source close-animation cancellation with a second Hide, tracks KeyboardAcceleratorTextOverride along with Icon and Label for secondary command sizing, and documents compositor, backdrop, popup ActualPlacement, and WinRT automation as platform substitutions.

  • 2026-05-17 CommandBar whole-control source port: docs\commandbar-winui3-source-audit.md maps normal CommandBar, CommandBarTemplateSettings, CommandBarOverflowPresenter, and the CommonStyles template against local WinUI 3 source. The old CommandBarToolBar / CommandBarPanel WPF ToolBar host was deleted; ModernWpf now runs available-command states, overflow-button visibility, and measured primary-command overflow from CommandBar itself.

  • 2026-05-17 AppBarButton / AppBarToggleButton whole-control source port: the stale in-progress marker is closed. docs\appbarbutton-winui3-source-audit.md maps the control pair against WinUI 3 source; ModernWpf now includes the source CloseSubMenusOnPointerEntered behavior with a WPF flyout-submenu substitute, and the remaining gamepad/remote, CascadingMenuHelper, CommandBar/AppBar platform, and WinRT automation differences are documented platform substitutions rather than guessed implementation.

  • 2026-05-17 FlyoutBase whole-control source port: the stale guessed-debt marker is closed. docs\flyoutbase-winui3-source-audit.md maps FlyoutBase, Flyout, and MenuFlyout against WinUI 3 source; show-options state is now applied before the same-target open/no-op path like ShowAtWithOptionsImpl, Transient updates the public ShowMode, one-way placement converters use WPF no-op convert-back values instead of throwing, and remaining gaps are documented as WPF popup/XamlRoot substitutions.

  • 2026-07-18 ToggleSwitch current-source, Gallery, behavior, accessibility, and pixel lock: docs\toggleswitch-winui3-source-audit.md now pins official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885, Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87, current runtime/peer/key/XamlOM/theme/test blobs, and the current two-example Gallery page/snippets. Classic product sources remain byte-current; the new perf2026 dictionary is an equivalent setter-based variant already represented by ModernWpf's VisualStateEx.Setters. The port retains source drag/manipulation/key/state/automation behavior and its documented centered-content measurement adapter. Fresh exact resting 72x40 crops pass Light 0.92 / Dark 1.06 under 1.5, with exact On-state 92x60 interaction crops at 0.53 / 0.48; primary size tolerance is now zero. Product/source tests pass 55/55, focused Gallery tests pass 2/2 on net8 and net10, and the focused net462 build is warning-free.

  • 2026-05-17 FlyoutShowOptions target-point path: WinUI XamlOM exposes FlyoutShowOptions with default ShowMode=Auto and Placement=Auto; FlyoutBase::ShowAtWithOptionsImpl reads Position, ExclusionRect, ShowMode, and Placement, sets a transient target position, applies a non-Auto placement override, and resets target-position/override state on close. ModernWpf now adds the WPF API shape, FlyoutPlacementMode.Auto, source-shaped show-options cloning for staged opens, target-point placement through a WPF zero-size PlacementRectangle, and placement overrides for Flyout and MenuFlyout.

  • 2026-05-17 FlyoutShowOptions null target: WinUI accepts a null placement target when FlyoutShowOptions.Position is set and otherwise rejects empty show options; ModernWpf now follows that shape by using the WPF main-window root as the placement target for positioned Flyout and MenuFlyout opens.

  • 2026-05-17 FlyoutShowOptions exclusion rect: WinUI shifts target-point flyouts away from ExclusionRect when the calculated presenter rect would overlap it; ModernWpf now keeps ExclusionRect through show-options cloning, translates it into target-position-relative WPF placement space, and shifts custom placements along the effective major placement.

  • 2026-05-17 Flyout root-bounds constraint surface: WinUI XamlOM exposes FlyoutBase.ShouldConstrainToRootBounds and IsConstrainedToRootBounds, and WinUI CommandBarFlyout sets ShouldConstrainToRootBounds=false in its constructor. ModernWpf now exposes the same WPF dependency-property surface and applies the CommandBarFlyout default while documenting the WPF popup substitution.

  • 2026-05-17 ToggleSwitch template root: WinUI 3 CommonStyles uses the visual-state-hosting Grid as the ToggleSwitch template root; ModernWpf removed the old WPF-only outer chrome Border wrapper and now keeps the source-shaped root grid while preserving documented WPF substitutions inside the switch parts.

  • 2026-05-17 ToggleSwitch root Grid chrome: WinUI's root Grid binds Background, BorderBrush, BorderThickness, and CornerRadius; ModernWpf now uses an inert BorderEx chrome layer as the WPF substitute so those bindings are no longer dropped while preserving the working root Grid layout.

  • 2026-05-17 ToggleSwitch SwitchAreaGrid animation target: WinUI animates SwitchAreaGrid as a Grid / Panel, but ModernWpf represents that rounded switch-area surface with a WPF Border; the CommonStates color animations now target Border.Background instead of the old guessed Panel.Background path, with a focused test asserting the dependency-property path.

  • 2026-05-17 ToggleSwitch manipulation mode: WinUI CommonStyles sets ManipulationMode="System,TranslateX" and native tests cover horizontal pan toggling while vertical pan does not toggle; ModernWpf now enables WPF manipulation on ToggleSwitch, requests TranslateX, routes horizontal manipulation through the same source-shaped move/complete path as thumb drag, and leaves vertical-only deltas unhandled/non-toggle.

  • 2026-05-17 Flyout ShowMode state: WinUI FlyoutBase::UpdateStateToShowMode normalizes Auto to Standard, keeps standard flyouts focus-taking, makes transient flyouts non-focus-taking, and hides TransientWithDismissOnPointerMoveAway flyouts when the pointer moves more than 80px from presenter bounds; ModernWpf now ports those state rules with a WPF root MouseMove substitute.

  • 2026-05-17 AppBar label-on-right width guard: WinUI AppBarButton::UpdateInternalStyles / AppBarToggleButton::UpdateInternalStyles apply the auto-width adjustment only for right labels, non-overflow style, and no local/modifier Width; ModernWpf removed the unconditional LabelOnRight XAML Width=NaN setters and now uses WPF WidthProperty coercion so local widths remain authoritative.

  • 2026-05-17 Flyout placement fallback order: WinUI FlyoutBase::CalculatePlacementPrivate tries the requested major placement, then the opposite major placement, then the remaining axis while preserving the requested justification; ModernWpf now returns the same source-shaped custom popup placement order instead of the old single opposite-placement guess, including right-edge-aligned placements.

  • 2026-05-17 ToggleSwitch transient state reset: WinUI OnIsEnabledChanged and OnVisibilityChanged clear dragging and pointer-over state, then refresh visual states; ModernWpf now keeps those reset paths source-shaped and covers disabled/collapsed transitions with focused tests.

  • 2026-05-17 Flyout placement-target unload close: WinUI FlyoutBase attaches an Unloaded handler to the placement target and hides the flyout when the target leaves the tree; ModernWpf now tracks the target in both Flyout and MenuFlyout paths and tests that unloading the target closes the flyout and clears Target.

  • 2026-05-17 CommandBar visible command states: WinUI CommandBar::ChangeVisualState chooses BothCommands, PrimaryCommandsOnly, or SecondaryCommandsOnly from visible dynamic command elements, and AppBarButton / AppBarToggleButton / AppBarSeparator notify the parent from OnVisibilityChanged; ModernWpf now uses WPF Visibility changes, owner tracking, and visible command collection checks instead of toolbar child/overflow counts.

  • 2026-05-17 AppBar command execution close path: WinUI AppBarButton::OnClick closes the parent CommandBar unless the button has an associated flyout, while AppBarToggleButton::OnClick always routes through CommandBar::OnCommandExecutionStatic; ModernWpf now mirrors that behavior with focused WPF tests for command buttons, flyout buttons, and toggle buttons.

  • 2026-05-17 FlyoutBase open-staging source shape: WinUI FlyoutBase enforces a single open flyout by staging the latest show request and hiding the current open flyout; ModernWpf now applies that WPF substitute to both Flyout and MenuFlyout.

  • 2026-05-17 ToggleSwitch whole-control status: ToggleSwitch is now tracked as a source-backed WPF port rather than guessed implementation debt; future work should be limited to concrete WinUI source drift or documented WPF substitution gaps.

  • 2026-05-17 MenuFlyout cancelable Closing: WinUI MenuFlyout::OnClosing delegates to FlyoutBase::OnClosing and keeps the menu open when Cancel is true; ModernWpf now routes the same cancellation path through its WPF ContextMenu presenter and completes Closed exactly once from the IsOpen=false transition.

  • 2026-05-17 FlyoutBase Target property: WinUI XamlOM defines FlyoutBase.Target as a read-only dependency property with an internal setter; ModernWpf now exposes the same WPF read-only dependency property and tracks it for both Flyout and MenuFlyout while open.

  • 2026-07-17 ToggleSwitch pointer-capture/style correction: WinUI clears PointerOver from OnPointerCaptureLost after vertical-pan drag completion, which ModernWpf keeps through the WPF thumb capture-lost path. Although CommonStyles does not spell out VerticalContentAlignment, live evidence shows WinUI's Control metadata centers it while WPF defaults it to Top, so the WPF port now declares the required platform-default substitution explicitly.

  • 2026-05-17 ToggleSwitch source-audit correction: docs\toggleswitch-winui3-source-audit.md maps the current WPF implementation against WinUI 3 ToggleSwitch_Partial, XamlOM, CommonStyles, and native tests; the keyboard path follows WinUI's OriginalKey shape by normalizing WPF system/IME/dead-char keys before source-style key processing.

  • 2026-05-17 FlyoutBase cancelable Closing: WinUI HideImpl calls OnClosing and aborts hide when FlyoutBaseClosingEventArgs.Cancel is true; ModernWpf now exposes the source-shaped Closing event and Cancel property, then restores WPF Popup.IsOpen on canceled closes while suppressing the synthetic reopen notification.

  • 2026-05-17 NavigationView whole-control source audit: docs\navigationview-winui3-source-audit.md maps the current WPF port against local WinUI 3 source. The active implementation already carries source-shaped NavigationView, item, presenter, template-settings, top-navigation data-provider, item factory, visual-state, and selection-provider architecture; this slice fixes the remaining public automation-peer surface mismatch and reclassifies the stale WinUI 2-era matrix row.

  • 2026-05-17 NavigationView back-button source cleanup: ModernWpf\Styles\NavigationBackButton.xaml now follows WinUI 3 NavigationBackButton.xaml for pointer-over, pressed, and disabled back-button visual states. The old WPF ControlTemplate.Triggers matrix was deleted, and chrome plus static animated-icon state fallback now lives in VisualStateEx.Setters with focused NavigationView coverage.

  • 2026-05-18 Expander source cleanup: ModernWpf\Styles\Expander.xaml now follows official WPF Fluent with WPF ControlTemplate.Triggers, local chevron templates, plain WPF ContentPresenter slots, official collapse animations, and a localized AnimationFactorToValueConverter. Focused tests assert the official trigger/template shape and the absence of the deleted WinUI-shaped presenter/state helpers.

  • 2026-05-17 ToggleSwitch owner focus states: WinUI ChangeVisualState branches from the ToggleSwitch owner's FocusState, not focus inside template children; ModernWpf now uses owner keyboard focus for Focused / PointerFocused routing and pointer mouse-down focuses the owner when a custom template child previously held focus.

  • 2026-05-17 ToggleSwitch canceled drag completion: ToggleSwitch_Partial.cpp returns immediately when DragCompletedHandler receives Canceled=true; ModernWpf now leaves the dragging state/translations untouched on that path and tests the resulting Pressed / Dragging states.

  • 2026-05-17 ToggleSwitch thumb tap bridge: WinUI registers Tapped on SwitchThumb, and its tap handler runs after drag cleanup; ModernWpf now uses a handled bubbling MouseLeftButtonUp hook instead of the old preview mouse-up hook so the WPF Thumb completes DragCompleted before the tap substitute toggles.

  • 2026-05-17 ToggleSwitch size updates: WinUI recalculates translation bounds only from the knob and knob-bounds SizeChanged handler; ModernWpf deleted the old template-apply/root render-size fallback and now tests knob-bounds resizing through the same part-size path.

  • 2026-05-17 ToggleSwitch source test parity: added coverage for the WinUI native test cases where horizontal drag toggles both on and off, explicit AutomationProperties.Name wins over computed names, and style-provided On/Off content is included in automation names.

  • 2026-05-17 ToggleSwitch automation string extraction: removed the guessed arbitrary ToString() fallback and matched WinUI's FrameworkElement::GetStringFromObject shape for known property values and unknown non-text objects.

  • 2026-05-17 ToggleSwitch automation peer source shape: replaced the hard-coded localized control type with a ToggleSwitch resource matching WinUI's UIA_AP_TOGGLESWITCH lookup, and routed IToggleProvider.Toggle through AutomationToggleSwitchOnToggle before the owner toggles state.

  • 2026-05-17 ToggleSwitch template source target: confirmed the packaged WinUI 3 style merge includes src\controls\dev\CommonStyles\ToggleSwitch_themeresources.xaml after the framework dxaml generic style, so the ModernWpf 40px track, 12px knob, knob growth animations, and pressed knob margins are source-backed. Removed the extra WPF-only Off state transform storyboard and added template-geometry tests to protect the CommonStyles source shape.

  • 2026-05-17 ToggleSwitch native lifecycle/tap parity: added WPF coverage for WinUI native CanInstantiate, CanEnterAndLeaveLiveTree, and CanToggleUsingTapInput, plus a WPF tap-bridge guard test that prevents a post-drag mouse-up from double-toggling after horizontal drag already changed state.

  • 2026-05-17 ToggleSwitch key process source shape: replaced the remaining inline guessed key-up toggle path with a private WPF port of WinUI's ToggleSwitchKeyProcess helper, keeping the source flow-direction branches behind HandlesKey; directional-key coverage now verifies both LTR and RTL stay non-toggle like WinUI's native test.

  • 2026-05-17 ToggleSwitch automation listener source shape: WinUI checks for a property-changed automation listener and then calls GetOrCreateAutomationPeer before raising ToggleState; ModernWpf now follows that listener-first/get-or-create path, with focused coverage proving the first IsOn change creates the peer when a WPF UIA property-change listener exists.

  • 2026-05-17 ToggleSwitch render-transform discovery: WinUI gets the curtain and knob translate transforms from the template parts' RenderTransform values rather than a named KnobTranslateTransform part; ModernWpf now follows that source shape and clones frozen WPF template transforms before mutating them.

  • 2026-05-17 ToggleSwitch knob background sizing: WinUI CommonStyles sets SwitchKnobOn BackgroundSizing="OuterBorderEdge"; ModernWpf now uses BorderEx for that template part so the WPF template preserves the WinUI knob chrome behavior instead of dropping it on a plain Border.

  • 2026-05-17 ToggleSwitch legacy theme brushes: WinUI 3 CommonStyles still publishes the older ToggleSwitchCurtain*, ToggleSwitchThumb*, ToggleSwitchTrack*, foreground, header, and outer-border theme brushes even though the active CommonStyles template now mostly uses newer aliases. ModernWpf now restores those source resource keys for Light, Dark, and HighContrast so existing resource consumers have the WinUI-compatible surface.

  • 2026-05-17 AppBar automation/flyout source shape: WinUI creates explicit AppBarButtonAutomationPeer / AppBarToggleButtonAutomationPeer, derives automation name from AutomationProperties.Name or Label without Content fallback, reports source localized control-type strings and trimmed keyboard accelerator text, exposes Toggle automation through AutomationToggleButtonOnToggle, and opens associated AppBarButton flyouts from click/expand paths; ModernWpf now ports these WPF equivalents.

  • 2026-05-17 AppBar automation keyboard focus: WinUI AppBarButtonAutomationPeer::IsKeyboardFocusableCore and AppBarToggleButtonAutomationPeer::IsKeyboardFocusableCore use AppBarButtonHelpers::IsKeyboardFocusable when hosted in a CommandBar, so non-tab-stop primary and secondary commands still report UIA keyboard focusable. ModernWpf now uses the same parent-CommandBar branch and ignores IsTabStop for the automation property while preserving WPF visible/enabled/focusable checks.

  • 2026-05-17 AppBar button pointer focus: WinUI native AllowFocusOnInteraction tests verify AppBarButton and AppBarToggleButton reject pointer focus by default while still accepting keyboard focus; ModernWpf now cancels WPF mouse-origin focus for both controls and tests the WPF substitute.

  • 2026-05-17 AppBar empty-label presence: WinUI GetHasLabelAtPosition treats any non-null Label as present, including the default empty string; ModernWpf now follows that rule for both AppBar button types when CommandBar decides whether bottom-label primary commands require the overflow button.

  • 2026-08-08 Preview 3 TimePicker and TwoPaneView adoption: docs\timepicker-winui3-source-audit.md and docs\twopaneview-winui3-source-audit.md pin current WinUI winui3/main commit 6a556bb28fc227acd2ec8fe67ee64853f559084b, current Gallery commit 3669519356c67f1376152c33ed8ea45003a91f3a, immutable product/Gallery blobs, current public APIs, behavior, templates, automation, and the finite cutoff disposition. TimePicker uses a documented WPF Popup/ListBox/culture adapter; TwoPaneView uses the source single-region threshold path and deliberately does not invent a WPF hinge API. The same cutoff ports the applicable visible NumberBox placeholder into the UIA Control view.

  • 2026-08-08 Preview 4 TitleBar and window-material adoption: docs\titlebar-winui3-gallery-parity.md pins WinUI winui3/main commit e1aa8f64df98d6229f6cd4074d59b654616254da and Gallery commit 3669519356c67f1376152c33ed8ea45003a91f3a; docs\window-backdrop-wpf-source-audit.md pins official WPF commit 7f005faa89e79b0b1fa1cb2c21283bab7916c092. The finite cutoff adds only four non-applicable TableView sample paths. ModernWpf ports the content-oriented TitleBar separately from its existing shell chrome and supplies a WPF-native DWM backdrop adapter with explicit OS, composition, High Contrast, layered-window, chrome, and native-failure fallbacks.

Active Source Parity Matrix

Area WinUI 3 source files ModernWpf files Status Evidence
ItemContainer current controls\dev\ItemContainer\*, generated ItemContainer properties, interaction and accessibility tests, TestUI, strings, and WinUIGallery\Samples\ItemContainer\* ModernWpf.Controls\ItemContainer\*, ModernWpf\ThemeResources\*.xaml, ModernWpf\ModernWpfControlsResources.xaml, ModernWpf.Gallery\Pages\ItemsViewFoundationsSampleFactory.cs, focused WinUI/Theme/Gallery tests, and docs\itemcontainer-winui3-source-audit.md Source-backed WPF port Pinned to product 23a73be03d194ea0ece97da71de98b6b53021b70 and Gallery b78c440193aab788215888561e45adf72da848cb. Public Child/IsSelected shape, selection visuals, pointer and keyboard policy, automation selection-item behavior, localized automation, metrics, and semantic brushes follow current source. WPF adds CornerRadius as a documented dependency-property adaptation and keeps ItemsView-owned policy internal.
LinedFlowLayout, item transitions, and ItemsView scrolling prerequisite current controls\dev\Repeater\LinedFlowLayout*, ItemsRepeater\ItemCollectionTransition*, generated repeater/layout properties, runtime and interaction tests, and WinUIGallery\Samples\ItemsView\* ModernWpf.Controls\Repeater\Layouts\LinedFlowLayout\*, ModernWpf.Controls\Repeater\ItemsRepeater\Transitions\*, ItemsRepeater/Layout integration, internal ModernWpf.Controls\ItemsView\ItemsViewScrollHost.cs, ModernWpf.Gallery\Pages\ItemsViewFoundationsSampleFactory.cs, focused tests, and the LinedFlowLayout/scrolling audit documents Source-backed WPF port and documented platform adapter Pinned to product 23a73be03d194ea0ece97da71de98b6b53021b70 and Gallery b78c440193aab788215888561e45adf72da848cb. Public LinedFlowLayout measurement, metadata planning, line alignment, locking, width constraints, ItemsRepeater transition-provider hooks, and transition lifecycle follow current source. WPF uses Dispatcher-backed completion and an internal IScrollController-to-ScrollViewer bridge; the public ItemsView surface remains reserved for Preview 7.
TitleBar controls\dev\TitleBar\*, generated TitleBar properties, interaction tests, TestUI, strings, and WinUIGallery\Samples\TitleBar\* ModernWpf.Controls\TitleBar\*, ModernWpf\ThemeResources\*.xaml, ModernWpf.Gallery\Pages\WindowingSampleFactory.cs, test\ModernWpf.WinUI.Tests\TitleBar\*, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, docs\titlebar-winui3-gallery-parity.md Source-backed WPF port Pinned to product e1aa8f64df98d6229f6cd4074d59b654616254da and Gallery 3669519356c67f1376152c33ed8ea45003a91f3a. Public content slots, icon/template settings, events, visibility/enabled state, nullable drag-region override, automatic/manual recompute APIs, localized automation, 32/48-DIP template states, 76 resource keys, and three Gallery examples follow current source. WPF substitutes live visual-tree hit classification and WindowChrome/DragMove for WinUI's InputNonClientPointerSource, XamlRoot, and rectangular drag-region API.
Window materials Official WPF WindowBackdropManager, ThemeManager, Window, backdrop enum, DWM interop, and Fluent Window style at 7f005faa89e79b0b1fa1cb2c21283bab7916c092 ModernWpf\Window\WindowBackdrop.cs, WindowBackdropKind.cs, Gallery SystemBackdrop page, focused behavior/source tests, and docs\window-backdrop-wpf-source-audit.md Official WPF-backed platform adapter Public attached Kind/FallbackBrush and read-only EffectiveKind expose Mica/Desktop Acrylic without changing WPF Window. Native material requires Windows 11 22H2+, composition, non-layered content, and compatible glass chrome; all other paths use a theme-aware solid fallback. The adapter restores owned background/composition/frame state, reacts to system changes, and unsubscribes process-wide listeners when the window closes.
TimePicker current XamlOM, TimePicker_Partial.*, TimePickerAutomationPeer_Partial.*, phone flyout/presenter runtime, classic/perf2026 theme resources, native integration tests, and WinUIGallery\Samples\TimePicker\* ModernWpf.Controls\TimePicker\*, ModernWpf\ThemeResources\*.xaml, ModernWpf.Gallery\Pages\DateTimeSampleFactory.cs, test\ModernWpf.WinUI.Tests\TimePicker\*, test\ModernWpf.Gallery.Tests\TimePickerSourceAuditTests.cs, docs\timepicker-winui3-source-audit.md Source-backed WPF port Pinned to product 6a556bb28fc227acd2ec8fe67ee64853f559084b and Gallery 3669519356c67f1376152c33ed8ea45003a91f3a. Public DP/event/peer shape, null sentinel, time coercion, system clock, selector order, three Gallery examples, and theme tokens follow current source. WPF substitutes Popup/ListBox/system culture for WinUI's asynchronous flyout/LoopingSelector/calendar stack and records the window-wide overlay limitation.
TwoPaneView controls\dev\TwoPaneView\TwoPaneView.idl, .cpp, .h, .xaml, generated properties, DisplayRegionHelper, API/interaction tests, and TestUI ModernWpf.Controls\TwoPaneView\*, ModernWpf.Gallery\Pages\LayoutSampleFactory.cs, test\ModernWpf.WinUI.Tests\TwoPaneView\*, test\ModernWpf.Gallery.Tests\TwoPaneViewSourceAuditTests.cs, docs\twopaneview-winui3-source-audit.md Source-backed WPF port Pinned to product 6a556bb28fc227acd2ec8fe67ee64853f559084b; pinned Gallery has no TwoPaneView page. Public enums/DPs/event, strict width-first thresholds, pane ordering/priority, row/column lengths, and six visual states follow source. WPF uses the official single-region path because it has no portable XamlRoot/ApplicationView spanning contract; no fake hinge API or gap is exposed.
MenuFlyout controls\dev\CommonStyles\MenuFlyout_themeresources.xaml, controls\dev\CommonStyles\MenuFlyout_themeresources_perf2026.xaml, dxaml\xcp\dxaml\lib\MenuFlyout_Partial.cpp, dxaml\xcp\dxaml\lib\MenuFlyoutPresenter_Partial.cpp, dxaml\xcp\dxaml\lib\MenuFlyoutItem_Partial.cpp, dxaml\xcp\dxaml\lib\MenuFlyoutSubItem_Partial.cpp, toggle/split item runtime and automation peers, WinUIGallery\Samples\MenuFlyout\* ModernWpf.Controls\MenuFlyout\*, ModernWpf\Styles\MenuItem.xaml, ModernWpf.Controls\RadioMenuItem\*, ModernWpf.Gallery\Pages\MenusToolbarsSampleFactory.cs, test\ModernWpf.WinUI.Tests\MenuFlyout\*, test\ModernWpf.WinUI.Tests\RadioMenuFlyoutItem\*, test\ModernWpf.Gallery.Tests\MenuFlyoutSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, tools\visual-checks\Record-GalleryControlInteractions.ps1, docs\menuflyout-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Classic blob 6f9f3fd322583d2d537dc30c439e62accf1efbd4 remains byte-current; perf2026 blob f5cfea5b8bd4b3bccb8a24c8f4fbc165c1cc69b9 changes seven narrow-padding assignments to equivalent setters and catches up the classic SplitMenuFlyout surface before the repository-root move. ModernWpf retains current typography, presenter/item metrics, standard/narrow states, radio placeholder, theme/High Contrast aliases, seven Gallery examples, outputs/fonts/checks, and Button/MenuItem/Text roles with Invoke/Toggle/ExpandCollapse. The scoped WPF menu metric and one-pixel presenter adapter yield exact 68x64 / 96x102 crops: fresh Light artifacts/visual-checks/20260719-004427-629-26672/report.md passes at 0.57 / 6.70; Dark artifacts/visual-checks/20260719-004459-735-37204/report.md at 0.55 / 4.01. OpenRepeat recordings artifacts/gallery-recordings/20260719-004531-064/report.md and artifacts/gallery-recordings/20260719-004623-068/report.md prove By rating invocation, dismissal, and reopen. Product tests pass 21/21, Gallery tests 3/3 on net8/net10, and builds pass net462/net8/net10. WPF substitutions remain documented for ContextMenu popup HWND, inherited typography, template/style selection, acrylic/composition, AccessibilityView, WinRT-specific event plumbing, and perf-setter representation.
Stock foundation/navigation styles D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\ContentControl.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\HeaderedContentControl.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\ItemsControl.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\UserControl.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\Page.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\Frame.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\NavigationWindow.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\TextBlock.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\Thumb.xaml ModernWpf\Styles\ContentControl.xaml, ModernWpf\Styles\HeaderedContentControl.xaml, ModernWpf\Styles\ItemsControl.xaml, ModernWpf\Styles\UserControl.xaml, ModernWpf\Styles\Page.xaml, ModernWpf\Styles\Frame.xaml, ModernWpf\Styles\NavigationWindow.xaml, ModernWpf\Styles\TextStyles.xaml, ModernWpf\Styles\Thumb.xaml, ModernWpf\StockControlsResources.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\FoundationNavigationVisualStateTests.cs, test\ModernWpf.WinUI.Tests\TemplateParityTests.cs, docs\foundation-navigation-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control family docs\foundation-navigation-wpf-fluent-source-audit.md maps the stock foundation/navigation styles against official WPF Fluent. ModernWpf now imports the missing content/control/navigation shell dictionaries, aligns core text styles to official TextBlock shape while retaining legacy text aliases, and exposes official shell theme aliases. WPF substitutions remain documented for System.Runtime to mscorlib, TextBlock.xaml to the existing TextStyles.xaml merge path, the existing generic Thumb corner-radius bridge, and ModernWpf's custom Window chrome being covered separately by docs\window-wpf-fluent-source-audit.md.
ToolTip D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\ToolTip.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\ToolTip.xaml, ModernWpf\StockControlsResources.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\ToolTipVisualStateTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, docs\tooltip-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\tooltip-wpf-fluent-source-audit.md maps the stock WPF ToolTip style against official WPF Fluent. The previous WinUI-like ThemeShadowChrome / ContentPresenterEx chrome surface was deleted for this stock control; the template now uses a WPF Border, plain WPF ContentPresenter, official system status font resources, WPF DropShadowEffect, and the official ToolTipForeground / ToolTipBackground aliases. StockControlsResources now merges the style so XamlControlsResources applies it. ModernWpf retains old resource aliases such as ToolTipContentThemeFontSize as unused public aliases.
Label D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\Label.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\Label.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\LabelVisualStateTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, docs\label-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\label-wpf-fluent-source-audit.md maps the stock WPF Label style against official WPF Fluent. The previous ModernWpf Border / ContentPresenterEx template, explicit alignment/font/background setters, and disabled trigger were deleted for this stock control; the style now uses official WPF Fluent's setter-only surface and the official LabelForeground alias.
GroupBox D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\GroupBox.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\GroupBox.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\GroupBoxVisualStateTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, docs\groupbox-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\groupbox-wpf-fluent-source-audit.md maps the stock WPF GroupBox style against official WPF Fluent. The previous ModernWpf ContentPresenterEx header/content slots, old header spacing, and implicit foreground forwarding were deleted for this stock control; the template now uses WPF Border chrome, two plain WPF ContentPresenter slots, official GroupBox metrics, and the official GroupBoxBackground / GroupBoxBorderBrush / GroupBoxHeaderForeground aliases.
GroupItem D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\GroupItem.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\CollectionViewGroup.xaml ModernWpf\Styles\GroupItem.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\GroupItemVisualStateTests.cs, test\ModernWpf.WinUI.Tests\TemplateParityTests.cs, docs\groupitem-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\groupitem-wpf-fluent-source-audit.md maps the stock WPF GroupItem style and grouped-header data template against official WPF Fluent. The previous ModernWpf ListViewHeaderItem wrapper, DefaultGroupItemStyle key, and OverridesDefaultStyle guess were deleted for this stock control; the template now uses official WPF ContentPresenter / ItemsPresenter shape with the official 5,0,0,0 items margin, plus the official CollectionViewGroup.Name header template.
Stock ListBox / ListView / GridView styles D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\ListBox.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\ListBoxItem.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\GridView.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\ListView.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\ListViewItem.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\ListBox.xaml, ModernWpf\Styles\ListBoxItem.xaml, ModernWpf\Styles\GridView.xaml, ModernWpf\Styles\ListView.xaml, ModernWpf\Styles\ListViewItem.xaml, ModernWpf\StockControlsResources.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\ListBoxListViewVisualStateTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, test\ModernWpf.WinUI.Tests\TemplateParityTests.cs, docs\listbox-listview-wpf-fluent-source-audit.md Official WPF Fluent-backed stock controls docs\listbox-listview-wpf-fluent-source-audit.md maps the stock WPF item/list/grid styles against official WPF Fluent. The stock ListBoxItem, ListViewItem, and GridViewColumnHeader templates now use plain WPF presenters and official WPF trigger/template shape instead of the previous ContentPresenterEx, FocusVisualHelper, ScrollViewerEx, and selection-active guesses. The imported dictionaries are split like the official source and merged in dependency order. ModernWpf substitutions remain documented for older-target mscorlib, Border.CornerRadius, the local GridView converter, and theme aliases.
Window shell D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\Window.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\Window.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\WindowVisualStateTests.cs, test\ModernWpf.Theme.Tests\ColorsHelperTests.cs, test\ModernWpf.WinUI.Tests\TemplateParityTests.cs, docs\window-wpf-fluent-source-audit.md Official WPF Fluent-backed shell substitution docs\window-wpf-fluent-source-audit.md maps the stock WPF Window style against official WPF Fluent. ModernWpf keeps its custom WindowTitleBarControl, attached title-bar properties, WindowChrome, high-contrast caption border, and WindowHelper.FixMaximizedWindow, but the compatible content-window surface now uses official WindowForeground / WindowBackground aliases and a plain WPF ContentPresenter instead of the old ContentPresenterEx content-slot guess. Because that custom shell paints its own Light/Dark border, the dynamic WindowBorder color follows DWM ColorPrevalence, refreshes from the existing window message hook, and preserves higher-scope application overrides.
Stock TreeView styles D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\TreeView.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\TreeViewItem.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\TreeView.xaml, ModernWpf\Styles\TreeViewItem.xaml, ModernWpf\StockControlsResources.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\TreeView\TreeViewResourceTests.cs, test\ModernWpf.WinUI.Tests\TemplateParityTests.cs, docs\treeview-wpf-fluent-source-audit.md Official WPF Fluent-backed stock controls docs\treeview-wpf-fluent-source-audit.md maps the stock WPF TreeView styles against official WPF Fluent. The stock TreeViewItem template now uses plain WPF presenters, WPF triggers, official chevron glyph resources, and official active-rectangle selection indicator behavior instead of the previous TreeViewItemHelper, VisualStateEx, ContentPresenterEx, FontIconFallback, and indentation-helper guesses. ModernWpf substitutions remain documented for older-target mscorlib, Border.CornerRadius, split dictionary dependency order, and retained unused density aliases.
Menu / ContextMenu / MenuItem D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\Menu.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\ContextMenu.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\MenuItem.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\Menu.xaml, ModernWpf\Styles\ContextMenu.xaml, ModernWpf\Styles\MenuItem.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\MenuFamilyVisualStateTests.cs, test\ModernWpf.WinUI.Tests\TemplateParityTests.cs, docs\menu-family-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control family docs\menu-family-wpf-fluent-source-audit.md maps stock WPF Menu, ContextMenu, and MenuItem styles against official WPF Fluent. The previous ModernWpf WinUI-shaped guesses were deleted for these stock controls: VisualStateEx, ContentPresenterEx, BorderEx, ThemeShadowChrome, MenuPopup, Border.CornerRadius, and MenuItemHelper.VisualStateSettersEnabled are gone from the menu-family style files. The copied templates now use official WPF MenuItem role templates, WPF Popup submenu hosts, plain WPF presenters, official glyph resources, and official menu/context/flyout aliases with documented ModernWpf substitutions for TextControlContextMenu, mscorlib string resources, check-box aliases, and focus-style bridging.
ToolBar / Separator / Thumb D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\ToolBar.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\Separator.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\Thumb.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\ToolBar.xaml, ModernWpf\Styles\Separator.xaml, ModernWpf\Styles\Thumb.xaml, ModernWpf\StockControlsResources.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\ToolBarFamilyVisualStateTests.cs, test\ModernWpf.WinUI.Tests\TemplateParityTests.cs, docs\toolbar-family-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control family docs\toolbar-family-wpf-fluent-source-audit.md maps stock WPF ToolBar, ToolBarTray, Separator, and generic Thumb styles against official WPF Fluent. ModernWpf now merges this family through StockControlsResources, uses official toolbar item style keys and overflow/drag chrome, and exposes official separator/thumb toolbar aliases. Documented substitutions cover local dependency merges for split dictionaries, Border.CornerRadius for older target thumb radius, mscorlib string resources, and the missing upstream MenuBorderColorDefaultBrush alias.
GridSplitter D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\GridSplitter.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\GridSplitter.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\GridSplitterVisualStateTests.cs, docs\gridsplitter-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\gridsplitter-wpf-fluent-source-audit.md maps the stock WPF GridSplitter style against official WPF Fluent. The previous ModernWpf solid-bar template and GridSplitterPreviewStyle guess were deleted for this stock control; the style now uses official min/thumb metrics, WPF Border / Rectangle thumb template shape, WPF triggers for pointer-over, dragging, disabled, and vertical splitter orientation, plus official GridsplitterBackground / GridsplitterForeground aliases.
StatusBar D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\StatusBar.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\StatusBarItem.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\StatusBar.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\StatusBarVisualStateTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, docs\statusbar-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\statusbar-wpf-fluent-source-audit.md maps the stock WPF StatusBar and StatusBarItem styles against official WPF Fluent. The previous ModernWpf ContentPresenterEx StatusBarItem slot, old foreground-only disabled trigger, and old separator metrics were deleted for this stock control; the style now uses official StatusBar setters, official separator chrome, WPF Border / plain WPF ContentPresenter item template shape, disabled item foreground/background triggers, and the official StatusBarItemBackground / StatusBarItemBackgroundDisabled / StatusBarItemForegroundDisabled aliases.
ResizeGrip D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\ResizeGrip.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\ResizeGrip.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\ResizeGripVisualStateTests.cs, docs\resizegrip-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\resizegrip-wpf-fluent-source-audit.md maps the stock WPF ResizeGrip style against official WPF Fluent. The previous ModernWpf tiled Path / DrawingBrush glyph, scrollbar-size min metrics, and ResizeGripDefaultStyle key shape were deleted for this stock control; the style now uses official DefaultResizeGripStyle, WPF TextBlock glyph chrome, official 12px min metrics, 8px icon glyph, SymbolThemeFontFamily, and the official ResizeGripForeground alias.
RichTextBox D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.HC.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.xaml ModernWpf\Styles\RichTextBox.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\RichTextBoxVisualStateTests.cs, test\ModernWpf.WinUI.Tests\TemplateParityTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, docs\richtextbox-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\richtextbox-wpf-fluent-source-audit.md maps the stock WPF RichTextBox style against official WPF Fluent. The previous WinUI-like header, placeholder, description, ContentPresenterEx, and RichTextBoxHelper path was deleted for this stock control; the template now uses ContentBorder, PART_ContentHost, official text-control setters, and WPF ControlTemplate.Triggers for pointer-over, focused, and disabled states. WPF substitutions remain documented for TextControlContextMenu, validation adorner routing, Border.CornerRadius, and the retained unused RichEditBoxTopHeaderMargin public alias.
TextBox / PasswordBox D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\TextBox.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\PasswordBox.xaml ModernWpf\Styles\TextBox.xaml, ModernWpf\Styles\PasswordBox.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\TextBoxPasswordBoxVisualStateTests.cs, test\ModernWpf.WinUI.Tests\TemplateParityTests.cs, docs\textbox-passwordbox-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control family docs\textbox-passwordbox-wpf-fluent-source-audit.md maps the stock WPF TextBox, TextBoxBase, and PasswordBox styles against official WPF Fluent. The previous WinUI-like header, placeholder, description, reveal-button, helper visual-state, and ContentPresenterEx template branches were deleted for these stock controls; the templates now use official WPF ContentBorder, PART_ContentHost, DeleteButton, and WPF trigger shapes. WPF substitutions remain documented for TextControlContextMenu, validation adorner routing, Border.CornerRadius, TextBoxHelper.IsDeleteButton as the older-target clear-button command substitute, TextBoxHelper.IsDeleteButtonVisible as the shipped clear-button visibility gate, retained DataGridTextBoxStyle, and retained unused TextBoxTopHeaderMargin / PasswordBoxTopHeaderMargin public aliases.
Button D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.HC.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.xaml ModernWpf\Styles\Button.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\ButtonVisualStateTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, docs\button-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\button-wpf-fluent-source-audit.md maps stock WPF Button to official PresentationFramework.Fluent. The previous WinUI VisualStateEx stock-button template was deleted; default and accent styles now use WPF ContentBorder / ContentPresenter templates and ControlTemplate.Triggers, DefaultButtonStyle targets ButtonBase, AccentButtonStyle is self-contained, and SubtleButtonStyle remains a ModernWpf-specific public style using the same trigger shape. ModernWpf substitutions remain documented for Border.CornerRadius, the existing focus visual bridge, and retained public resource aliases.
ToggleButton Current official dotnet/wpf Fluent blobs at 83e6cbda760818a2ab885c4aa3fc7e3a39eedf58; current WinUI Gallery WinUIGallery/Samples/ToggleButton/ToggleButtonPage.xaml, .xaml.cs, and ToggleButtonSimple.txt at 29f62479d5c046a0b854a5868e5a7cd484572d87 ModernWpf\Styles\ToggleButton.xaml, ModernWpf.Gallery\Pages\BasicInputSampleFactory.cs, test\ModernWpf.WinUI.Tests\CommonStyles\ToggleButtonVisualStateTests.cs, test\ModernWpf.Gallery.Tests\ToggleButtonSourceAuditTests.cs, docs\togglebutton-wpf-fluent-source-audit.md Current official WPF Fluent-backed stock control plus WinUI Gallery behavior/pixel lock Current Fluent blobs are byte-identical to the audited local source. The native multi-trigger template, nullable-state fallback, resources, source sample, Off/On output, Button/Text automation, Toggle provider, exact resting geometry, and exact checked interaction geometry are source-pinned and strict-gated in both themes.
RepeatButton Current official dotnet/wpf Fluent blobs at 83e6cbda760818a2ab885c4aa3fc7e3a39eedf58; current WinUI Gallery WinUIGallery/Samples/RepeatButton/RepeatButtonPage.xaml, .xaml.cs, and RepeatButtonSimple.txt at 29f62479d5c046a0b854a5868e5a7cd484572d87 ModernWpf\Styles\RepeatButton.xaml, ModernWpf.Gallery\Pages\BasicInputSampleFactory.cs, test\ModernWpf.WinUI.Tests\CommonStyles\RepeatButtonVisualStateTests.cs, test\ModernWpf.Gallery.Tests\RepeatButtonSourceAuditTests.cs, docs\repeatbutton-wpf-fluent-source-audit.md Current official WPF Fluent-backed stock control plus WinUI Gallery behavior/pixel lock Current Fluent blobs are byte-identical to the audited local source. The stock template keeps ContentBorder, WPF ContentPresenter, native triggers, source padding/border geometry, and documented WPF focus/resource substitutions. The current Gallery row, click count, polite live-region announcement, Button/Text automation, exact 112x32 static crop, and exact 240x32 output-row crop are now source-pinned and strict-gated in both themes.
RadioButton D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.HC.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.xaml ModernWpf\Styles\RadioButton.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\RadioButtonVisualStateTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, docs\radiobutton-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\radiobutton-wpf-fluent-source-audit.md maps the stock WPF RadioButton style to official WPF Fluent. The WinUI VisualStateEx helper template path was deleted for this stock control; the template now uses RootBorder, RootGrid, WPF ContentPresenter, official WPF Normal / MouseOver / Pressed states, and WPF Trigger / MultiTrigger entries for checked, disabled, pointer-over, pressed, and right-to-left behavior. WPF substitutions remain documented for the focus visual bridge, Border.CornerRadius, retained ModernWpf brush aliases, and platform-owned grouping/input/automation behavior.
Slider D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Themes\Fluent.Light.xaml ModernWpf\Styles\Slider.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\SliderVisualStateTests.cs, docs\slider-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control Slider is now governed by official WPF Fluent rather than WinUI 3 source. The WinUI helper-driven VisualStateEx port and Slider-specific helper files were deleted; the style follows the official WPF trigger model, WPF MouseOver thumb state, selection-range triggers, and 20px thumb metrics while preserving existing ModernWpf resource keys.
Calendar / DatePicker stock styles D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\Calendar.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\DatePicker.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\DefaultContextMenu.xaml ModernWpf\Styles\Calendar.xaml, ModernWpf\Styles\DatePicker.xaml, ModernWpf\Styles\ContextMenu.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\DatePickerVisualStateTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, docs\calendar-datepicker-wpf-fluent-source-audit.md Official WPF Fluent-backed stock styles docs\calendar-datepicker-wpf-fluent-source-audit.md maps WPF's stock Calendar and DatePicker templates against official WPF Fluent. The previous WinUI CalendarView / CalendarDatePicker stock-style mapping, ContentPresenterEx slots, VisualStateEx.Setters, and DatePickerHelper state driver are deleted for these stock controls. WPF substitutions remain documented for mscorlib, Border.CornerRadius, context-menu resource placement, and theme aliases. WinUI's selector-style DatePicker remains excluded under the no-new-controls rule.
TabControl / TabItem D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\TabControl.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\TabControl.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\TabView\TabViewResourceTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, docs\tabcontrol-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\tabcontrol-wpf-fluent-source-audit.md maps the stock WPF TabControl and TabItem style against official WPF Fluent. The previous WinUI TabView-shaped VisualStateEx, ThemeShadowChrome, ContentPresenterEx, TabItemHelper, and TabControlHelper layer was deleted for this stock control. Preview 5's separate ModernWpf.Controls.TabView does not alter this stock-control contract.
TabView current WinUI 3 product controls\dev\TabView\* at e1aa8f64df98d6229f6cd4074d59b654616254da; WinUI Gallery WinUIGallery\Samples\TabView\* at 3669519356c67f1376152c33ed8ea45003a91f3a ModernWpf.Controls\TabView\*, ModernWpf.Gallery\Pages\TabViewSampleFactory.cs, ModernWpf\ModernWpfControlsResources.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\TabView\TabViewApiTests.cs, test\ModernWpf.WinUI.Tests\TabView\TabViewSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\TabViewSourceAuditTests.cs, test\ModernWpf.Theme.Tests\TabViewThemeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, docs\tabview-winui3-source-audit.md Source-backed WPF port Preview 5 preserves the current public API and resource surface, application-owned close/removal, selection and content fallback, all width and close-overlay modes, overflow scrolling, keyboard/focus behavior, selection and scroll automation, drag/reorder, and all ten current Gallery examples. WPF substitutes IDataObject, DragDropEffects, WPF triggers, and application-owned System.Windows.Window tear-out/rejoin events for WinRT data packages, ListView presenter states, and native AppWindow move-size integration. Stock WPF TabControl remains a separate official WPF Fluent surface.
Layout chrome controls / ContentPresenter text surface current-root Border/Grid/StackPanel/ContentPresenter/framework core sources, XamlOM, and Border/Grid/StackPanel/ContentPresenter integration suites ModernWpf\Controls\BorderEx.cs, ModernWpf\Controls\GridEx.cs, ModernWpf\Controls\StackPanelEx.cs, ModernWpf\Controls\ContentPresenterEx.cs, ModernWpf\Controls\ContentControlEx.cs, ModernWpf\Controls\LayoutChromeHelper.cs, ModernWpf\Controls\Primitives\ControlHelper.cs, layout/source tests, docs\layout-chrome-winui3-source-audit.md Source-backed WPF foundation Refreshed against official commit de3e767333c2f0717a6a70cb22bd192ced5ad885. Border/Grid/StackPanel/ContentPresenter/XamlOM/integration blobs remain byte-current after root move 8463f45162149de0ec3ad7df752596893fe3e13e; current framework.cpp changes optimize style/resource/event/type/template internals without changing mapped chrome/layout. ModernWpf retains source BackgroundSizing, rounded border difference geometry, clip intersection/hit testing, padding/border measure, signed Grid spacing/spans, visible-child StackPanel spacing/snap points, ContentPresenter text metadata/MaxLines substitution, and ContentControl delegation. ContentControlEx now makes its shipped ContentTransitions surface behavioral by running NavigationThemeTransition through paired WPF presenters and the existing navigation-animation engine, with completed cleanup and no new public API. The deterministic renderer detaches its sampled windowless GridEx; the full 57-test slice including dynamic invalidation and content transitions passes. Controls builds net462/net8/net10 warning-free. WPF geometry, MaxLines/text-scale, snap-host, composition-transition, and style/resource-engine substitutions remain explicit.
LayoutPanel controls\dev\LayoutPanel\LayoutPanel.idl, controls\dev\LayoutPanel\LayoutPanel.h, controls\dev\LayoutPanel\LayoutPanel.cpp, controls\dev\LayoutPanel\LayoutPanelLayoutContext.h, controls\dev\LayoutPanel\LayoutPanelLayoutContext.cpp, controls\dev\LayoutPanel\APITests\LayoutPanelTests.cs ModernWpf.Controls\LayoutPanel\LayoutPanel.cs, ModernWpf.Controls\LayoutPanel\LayoutPanelLayoutContext.cs, test\ModernWpf.WinUI.Tests\LayoutPanel\LayoutPanelApiTests.cs, test\ModernWpf.WinUI.Tests\LayoutPanel\LayoutPanelSourceAuditTests.cs, docs\layoutpanel-winui3-source-audit.md Source-backed WPF port Refreshed against official commit de3e767333c2f0717a6a70cb22bd192ced5ad885. The entire upstream LayoutPanel tree remains byte-identical apart from the repository root move. ModernWpf follows the source public surface, padding/border size adjustment and zero clamp, default child fill arrange, custom Layout delegation, layout-context children/state exposure, and layout replacement semantics that uninitialize/unhook the old layout and initialize/hook the new one. Source-derived tests also lock WPF chrome, rounded clip/hit testing, and XAML parsing. The current WinUI Gallery commit has no LayoutPanel page, so row 8.36 uses product-source, layout/chrome/lifecycle, and net462/net8/net10 build gates without inventing a live comparison. Focused tests pass 9/9. WPF substitutions remain documented for dependency-property metadata, panel protected chrome, rounded layout clip/hit-test geometry, and Children().GetView() through a WPF IReadOnlyList<UIElement> wrapper.
ListView / GridView dxaml\xcp\dxaml\lib\ListViewBase_Partial.cpp, dxaml\xcp\dxaml\lib\ListViewBase_Partial_Interaction.cpp, dxaml\xcp\dxaml\lib\ListViewBase_Partial_Selection.cpp, dxaml\xcp\dxaml\lib\ListViewBaseItem_Partial.cpp, dxaml\xcp\dxaml\lib\ListViewBaseAutomationPeer_Partial.cpp, dxaml\xcp\dxaml\lib\ListViewBaseItemAutomationPeer_Partial.cpp, dxaml\xcp\dxaml\lib\ListViewAutomationPeer_Partial.cpp, dxaml\xcp\dxaml\lib\GridViewAutomationPeer_Partial.cpp, dxaml\xcp\dxaml\lib\ListView_Partial.cpp, dxaml\xcp\dxaml\lib\GridView_Partial.cpp, controls\dev\CommonStyles\ListViewItem_themeresources.xaml, controls\dev\CommonStyles\GridViewItem_themeresources.xaml, controls\dev\CommonStyles\ListViewItem_themeresources_perf2026.xaml, dxaml\test\native\external\controls\listviewbaseitem\ListViewBaseItemIntegrationTests.cpp, dxaml\test\native\external\controls\listviewbaseitem\ListViewBaseItemAutomationIntegrationTests.cpp, dxaml\test\native\external\enterprise\ListView\ListViewIntegrationTests.cpp, dxaml\test\native\external\enterprise\GridView\GridViewIntegrationTests.cpp, WinUIGallery\Samples\GridView\GridViewPage.xaml, WinUIGallery\Samples\GridView\GridViewPage.xaml.cs, WinUIGallery\Samples\GridView\BasicGridviewSimpleDatatemplate.txt, WinUIGallery\Samples\GridView\GridviewLayoutCustomization.txt, WinUIGallery\Samples\GridView\ContentInsideGridview.txt ModernWpf.Controls\ListView\ListViewBase.cs, ModernWpf.Controls\ListView\ListViewBaseItem.cs, ModernWpf.Controls\ListView\ListViewBaseAutomationPeer.cs, ModernWpf.Controls\ListView\ListViewBaseItemAutomationPeer.cs, ModernWpf.Controls\ListView\ListView.xaml, ModernWpf.Controls\ListView\GridView.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, ModernWpf.Gallery\Pages\CollectionsSampleFactory.cs, test\ModernWpf.WinUI.Tests\ListView\ListViewApiTests.cs, test\ModernWpf.WinUI.Tests\ListView\ListViewSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, docs\listview-winui3-source-audit.md Source-backed WPF port Refreshed against official product de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery 29f62479d5c046a0b854a5868e5a7cd484572d87. The item templates retain source-named CommonStates and multiselect outcomes through VisualStateEx.Setters; the current perf2026 dictionary is state/resource-equivalent. Item interaction retains Enter/Space, Alt+Space exclusion, selection-state routing, brush focus resources, and own-container clicked-content fallback. The audit fixes the shared accessibility surface: parent/item peers now publish source class names and List/ListItem roles, and item Invoke is exposed only while IsItemClickEnabled is true. Both custom collection styles enable WPF PanningMode=Both, allowing their templated ScrollViewerEx controls to process touch-manipulation scrolling. All three current Gallery examples, options, names, and outputs are pinned. Fresh exact 657x412 crops pass at Light 1.61 / Dark 1.60; required output crops pass at 6.40 / 6.64, with zero static size tolerance, a four-pixel output metric cap, and fresh recordings proving blank-to-You clicked Item 1. change. Product/source tests pass 12/12 and Gallery slices pass 3/3 on net8/net10. WPF substitutions remain documented for missing ListViewItemPresenter, duplicate state names, WPF selection/virtualization/layout/drag services, touch panning, SemanticZoom/gamepad paths, and WinUI raw accessibility view.
VariableSizedWrapGrid / WrapGrid / ItemsWrapGrid current root dxaml\xcp\dxaml\lib runtime/occupancy sources, generated WinRT/core headers, XamlOM, and all three native integration suites ModernWpf\Controls\VariableSizedWrapGrid.cs, ModernWpf\Controls\WrapGrid.cs, ModernWpf\Controls\ItemsWrapGrid.cs, product/Gallery source tests, ModernWpf.Gallery\Pages\CollectionsSampleFactory.cs, docs\variablesizedwrapgrid-winui3-source-audit.md Source-backed WPF layout family Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885; all 17 audited blobs remain byte-identical after root move 8463f45162149de0ec3ad7df752596893fe3e13e. ModernWpf retains current public properties/defaults, first-item sizing, orientation/MaximumRowsOrColumns, positive span normalization, first-fit finite occupancy, oversized spans, alignment, XAML, and realized-child range. Current Gallery has no standalone family page; its current GridView customization still consumes horizontal MaxItemsWrapGrid and live three-to-four updates. Product/source tests pass 12/12, Gallery consumer tests 1/1 on net8/net10, and Controls builds net462/net8/net10 warning-free. WPF boundaries remain explicit for native OccupancyBlock storage, recycling/effective viewport/cache/group-sticky/insertion services, keyboard/oriented panel hooks, and inherited compatibility surface.
Repeater / ItemsRepeater layouts controls\dev\Repeater\ItemsRepeater.*, controls\dev\Repeater\ViewportManager.*, controls\dev\Repeater\RepeaterAutomationPeer.*, controls\dev\Repeater\StackLayout.*, controls\dev\Repeater\FlowLayout.*, controls\dev\Repeater\UniformGridLayout.*, controls\dev\Repeater\ItemsRepeaterScrollHost.*, controls\dev\Repeater\ItemsSourceView.*, controls\dev\Repeater\RecyclePool.*, controls\dev\Repeater\SelectionModel.*, controls\dev\Repeater\APITests\AccessibilityTests.cs, controls\dev\Repeater\APITests\RepeaterTests.cs, WinUIGallery\Samples\ItemsRepeater\* ModernWpf.Controls\Repeater\ItemsRepeater\*.cs, ModernWpf.Controls\Repeater\Automation\RepeaterAutomationPeer.cs, ModernWpf.Controls\Repeater\Layouts\StackLayout\*.cs, ModernWpf.Controls\Repeater\Layouts\FlowLayout\*.cs, ModernWpf.Controls\Repeater\Layouts\UniformGridLayout\*.cs, ModernWpf.Controls\Repeater\SelectionModel\*.cs, ModernWpf.Gallery\Pages\CollectionsSampleFactory.cs, test\ModernWpf.WinUI.Tests\Repeater\*.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, docs\repeater-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. The audit pins current post-root runtime/layout/source/recycle/selection/peer/test blobs and records WinUI's viewport consolidation as a deliberate WPF downlevel adaptation. ModernWpf retains source item/template/recycle/selection, layout, anchoring, viewport-extent, 60-pass measure-cycle, and null-state collection-change behavior. The existing automation peer now has a direct upstream accessibility regression proving Group role, unrealized-peer filtering, peerless-container flattening, and item-index order. The converted six-example Gallery page, Low chrome bars, snippets, options, and runtime interactions remain current. Fresh exact 425x88 installed-Gallery comparisons pass at Light 0.53 / Dark 0.42 under 1.0, and Light/Dark scroll recordings pass. Product/source/accessibility tests pass 69/69; unavailable WinUI effective viewport, ScrollPresenter, phasing, composition, raw TestUI, gamepad, and WinRT metadata remain documented platform substitutions.
CheckBox D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\CheckBox.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\CheckBox.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\CheckBoxVisualStateTests.cs, docs\checkbox-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\checkbox-wpf-fluent-source-audit.md maps the stock WPF CheckBox style against official WPF Fluent. The previous WinUI CombinedStates template and CheckBoxHelper state driver were deleted; the default template now uses official WPF Trigger / MultiTrigger entries, RootBorder / RootGrid / ControlBorderIconPresenter structure, WPF text glyph resources, a plain WPF ContentPresenter, and official glyph brush aliases. WPF substitutions remain documented for Border.CornerRadius, ModernWpf focus visual bridging, retained public brush aliases, and DataGrid-specific CheckBox styles.
Expander D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\Expander.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Controls\AnimationFactorToValueConverter.cs, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\Expander.xaml, ModernWpf\Controls\Primitives\AnimationFactorToValueConverter.cs, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\Expander\ExpanderApiTests.cs, test\ModernWpf.WinUI.Tests\Expander\ExpanderInteractionTests.cs, docs\expander-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\expander-wpf-fluent-source-audit.md maps the stock WPF Expander style against official WPF Fluent. The previous WinUI-shaped VisualStateEx, ToggleButtonHelper, ContentPresenterEx, and FontIconFallback guesses were deleted; the default style now uses official WPF trigger templates, local chevron glyph templates, plain WPF ContentPresenter slots, official collapse animation storyboards, DefaultControlFocusVisualStyle, and theme aliases for official Expander keys. WPF substitutions remain documented for older-target mscorlib, Border.CornerRadius, and the localized animation converter.
WrapPanel controls\dev\WrapPanel\WrapPanel.idl, controls\dev\WrapPanel\WrapPanel.h, controls\dev\WrapPanel\WrapPanel.cpp, controls\dev\Generated\WrapPanel.properties.cpp, controls\dev\Generated\WrapPanel.properties.h, controls\dev\WrapPanel\APITests\WrapPanelTests.cs ModernWpf.Controls\WrapPanel\WrapPanel.cs, test\ModernWpf.WinUI.Tests\WrapPanel\WrapPanelApiTests.cs, test\ModernWpf.WinUI.Tests\WrapPanel\WrapPanelSourceAuditTests.cs, docs\wrappanel-winui3-source-audit.md Source-backed WPF port Refreshed against official commit de3e767333c2f0717a6a70cb22bd192ced5ad885. The full runtime, generated-property, build-item, and API-test payload remains byte-identical apart from the repository root move. ModernWpf follows the source public surface and invalidation set, UV row-building algorithm, horizontal/vertical padding and spacing, collapsed-child behavior, ItemsStretch.Last, variable cross-size rows, and arrange cache rule that preserves measured row breaks unless the arranged primary axis shrinks. The current WinUI Gallery has no WrapPanel page, so row 8.37 uses product-source, 20/20 source/layout regressions, and clean net462/net8/net10 builds without inventing a live comparison. WPF substitutions remain documented for Orientation type mapping, dependency-property metadata, WPF desired-size clamping, and collapsed arrange cleanup.
AutoSuggestBox dxaml\xcp\dxaml\lib\AutoSuggestBox_Partial.cpp, dxaml\xcp\dxaml\lib\AutoSuggestBox_Partial.h, dxaml\xcp\dxaml\lib\AutoSuggestBoxTextChangedEventArgs_Partial.h, dxaml\xcp\dxaml\lib\AutoSuggestBoxAutomationPeer_Partial.cpp, dxaml\xcp\dxaml\lib\ListViewBase_Partial_Interaction.cpp, dxaml\xcp\tools\XCPTypesAutoGen\Modules\AutoSuggestBox\AutoSuggestBox.cs, dxaml\xcp\tools\XCPTypesAutoGen\Modules\AutoSuggestBox\AutoSuggestBoxAutomationPeer.cs, controls\dev\AutoSuggestBox\AutoSuggestBox_themeresources.xaml, controls\dev\AutoSuggestBox\AutoSuggestBox_themeresources_perf2026.xaml, controls\dev\AutoSuggestBox\AutoSuggestBoxHelper.cpp, controls\dev\Generated\AutoSuggestBoxHelper.properties.cpp, controls\dev\AutoSuggestBox\APITests\AutoSuggestBoxTests.cs, controls\dev\AutoSuggestBox\InteractionTests\AutoSuggestBoxTests.cs, dxaml\test\native\external\controls\autosuggestbox\AutoSuggestBoxIntegrationTests.cpp, dxaml\test\native\external\controls\autosuggestbox\AutoSuggestBoxAutomationPeerIntegrationTests.cpp, WinUIGallery\Samples\AutoSuggestBox\AutoSuggestBoxPage.xaml, WinUIGallery\Samples\AutoSuggestBox\AutoSuggestBoxPage.xaml.cs, WinUIGallery\Samples\AutoSuggestBox\BasicAutosuggestBox.txt, WinUIGallery\Samples\AutoSuggestBox\AutosuggestboxProvidesSearchboxExperience.txt ModernWpf.Controls\AutoSuggestBox\AutoSuggestBox.cs, ModernWpf.Controls\AutoSuggestBox\AutoSuggestBox.properties.g.cs, ModernWpf.Controls\AutoSuggestBox\AutoSuggestBoxTextChangedEventArgs.cs, ModernWpf.Controls\AutoSuggestBox\AutoSuggestBoxAutomationPeer.cs, ModernWpf.Controls\AutoSuggestBox\AutoSuggestBoxListView.cs, ModernWpf.Controls\AutoSuggestBox\AutoSuggestBoxListViewItem.cs, ModernWpf.Controls\AutoSuggestBox\AutoSuggestBox.xaml, ModernWpf\Styles\AutoSuggestBox.xaml, ModernWpf.Gallery\Pages\TextSampleFactory.cs, test\ModernWpf.WinUI.Tests\AutoSuggestBox\AutoSuggestBoxApiTests.cs, test\ModernWpf.WinUI.Tests\AutoSuggestBox\AutoSuggestBoxInteractionTests.cs, test\ModernWpf.WinUI.Tests\AutoSuggestBox\AutoSuggestBoxSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, docs\autosuggestbox-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Every classic runtime/event-args/peer/list/XamlOM/helper/theme/test blob remains a byte-identical root move; perf2026 only replaces discrete assignments with setters. ModernWpf carries source delayed-counter/CheckCurrent behavior, user-text restoration, query and suggestion ordering, selection modes, Invoke Group peer, popup depth/insets/corner filtering, resources, and current two-example Gallery filtering/search behavior. Exact 300x32 installed-Gallery crops pass Light and Dark at 0.01 under 0.1, with zero size tolerance. Fresh diagnostic evidence proves ModernWpf's real-keyboard ae to nonblank 300x50 Aegean popup/output; the installed reference still exposes no suggestions, so no cross-app interaction delta is claimed. Product/source tests pass 12/12, Gallery/source-shape tests pass 4/4 on net8/net10, and net462 builds warning-free. WPF substitutions remain documented for SIP/IME and validation forwarding, popup/overlay/root-bounds placement, reversed-above ordering, shared TextBox triggers/icons, header placement, and WPF selected-item storage.
RadioButtons controls\dev\RadioButtons\RadioButtons.idl, controls\dev\RadioButtons\RadioButtons.cpp, controls\dev\RadioButtons\RadioButtons.xaml, controls\dev\RadioButtons\RadioButtons_themeresources.xaml, controls\dev\RadioButtons\RadioButtonsAutomationPeer.cpp, controls\dev\RadioButtons\RadioButtonsElementFactory.cpp, controls\dev\RadioButtons\ColumnMajorUniformToLargestGridLayout.cpp, controls\dev\Generated\RadioButtons.properties.cpp, controls\dev\RadioButtons\APITests\RadioButtonsTests.cs, controls\dev\RadioButtons\InteractionTests\RadioButtonsTests.cs ModernWpf.Controls\RadioButtons\RadioButtons.cs, ModernWpf.Controls\RadioButtons\RadioButtons.xaml, ModernWpf.Controls\RadioButtons\RadioButtonsAutomationPeer.cs, ModernWpf.Controls\RadioButtons\RadioButtonsElementFactory.cs, ModernWpf.Controls\RadioButtons\ColumnMajorUniformToLargestGridLayout.cs, ModernWpf.Controls\RadioButtons\RadioButtonsTestHooks.cs, test\ModernWpf.WinUI.Tests\RadioButtons\RadioButtonsApiTests.cs, test\ModernWpf.WinUI.Tests\RadioButtons\RadioButtonsInteractionTests.cs, test\ModernWpf.WinUI.Tests\RadioButtons\RadioButtonsSourceAuditTests.cs, docs\radiobuttons-winui3-source-audit.md Source-backed WPF port Refreshed against official commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and product fix 8855743667ca40c93bf655f3779f36cb576088ac. ModernWpf now omits nonexistent items from SelectionChangedEventArgs.RemovedItems and AddedItems, eliminating null placeholders on first selection, out-of-range selection, and deselection. The source automation peer, MaxColumns validation and template binding, item factory/template-selector order, selection, keyboard/layout behavior, and UIA position/size metadata remain pinned. The current Gallery has only the distinct singular RadioButton page, so row 8.38 uses current product-source, 23/23 behavior/layout/accessibility tests, and successful net462/net8/net10 builds without substituting that page. WPF substitutions remain documented for focus/gamepad handling, access keys, child-handler revokers, retained internal test hooks, and WPF automation metadata.
ColorPicker / ColorSpectrum controls\dev\ColorPicker\ColorPicker.idl, controls\dev\ColorPicker\ColorPicker.cpp, controls\dev\ColorPicker\ColorPicker.h, controls\dev\ColorPicker\ColorPicker.xaml, controls\dev\ColorPicker\ColorSpectrum.idl, controls\dev\ColorPicker\ColorSpectrum.cpp, controls\dev\ColorPicker\ColorSpectrum.h, controls\dev\ColorPicker\ColorSpectrum.xaml, controls\dev\ColorPicker\ColorPickerSlider.idl, controls\dev\ColorPicker\ColorPickerSlider.cpp, controls\dev\ColorPicker\ColorPickerSliderAutomationPeer.cpp, controls\dev\ColorPicker\ColorSpectrumAutomationPeer.cpp, controls\dev\ColorPicker\ColorPicker_themeresources.xaml, controls\dev\Common\ColorConversion.cpp, controls\dev\Common\ColorConversion.h, WinUI Gallery ColorPickerPage.xaml, ColorPickerPage.xaml.cs, ColorPickerProperties.txt ModernWpf.Controls\ColorPicker\ColorPicker.cs, ModernWpf.Controls\ColorPicker\ColorSpectrum.cs, ModernWpf.Controls\ColorPicker\ColorPickerSlider.cs, ModernWpf.Controls\ColorPicker\ColorConversion.cs, ModernWpf.Controls\ColorPicker\ColorSpectrumAutomationPeer.cs, ModernWpf.Controls\ColorPicker\ColorPickerSliderAutomationPeer.cs, ModernWpf.Controls\ColorPicker\ColorPicker.xaml, ModernWpf.Gallery\Pages\BasicInputSampleFactory.cs, ModernWpf.Gallery\Samples\SampleCode\ColorPicker\ColorPickerProperties.txt, test\ModernWpf.WinUI.Tests\ColorPicker\ColorPickerApiTests.cs, test\ModernWpf.Gallery.Tests\ColorPickerSourceAuditTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, docs\colorpicker-winui3-source-audit.md Source-backed WPF port Refreshed against current official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; all 18 pinned product/peer/theme/conversion/resource/test blobs remain byte-identical to the source-shaped port. The current Gallery snippet is now external and the source options are hosted through GalleryExample.OptionsContent. CheckBox/RadioButtons/ColorSpectrum roles, names, Toggle/Value providers, property/shape behavior, and preview propagation are pinned. The theme probe uses HexTextBox rather than theme-invariant spectrum luminance, and Alpha uses a common 900px viewport to preserve the complete live 312x566 surface. Strict exact-size installed-Gallery gates under 4.0 pass Default at Light 0.94 / Dark 0.96, More at 0.82 / 0.79, Opacity at 1.60 / 1.68, and Ring at 1.11 / 1.23. WPF substitutions remain documented for SpectrumBrush, synchronous bitmap creation, localized resource strings, WinRT automation notifications, and raw TestUI pointer automation.
ComboBox D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\ComboBox.xaml ModernWpf\Styles\ComboBox.xaml, test\ModernWpf.WinUI.Tests\ComboBox\ComboBoxApiTests.cs, test\ModernWpf.WinUI.Tests\ComboBox\ComboBoxKeyboardNavigationTests.cs, docs\combobox-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\combobox-wpf-fluent-source-audit.md maps WPF's stock ComboBox style against official WPF Fluent. ModernWpf deleted the old WinUI-shaped ComboBoxHelper, VisualStateEx, ContentPresenterEx, and FontIconFallback stock-style layer. WPF substitutions are documented for System.Runtime to mscorlib, Border.CornerRadius to Border.CornerRadius, retaining DataGrid adapter style keys as direct-reference compatibility resources, and restoring the classic WPF editable IsTabStop=False setter so backward and Ctrl+Tab traversal leave PART_EditableTextBox.
DataGrid D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Styles\DataGrid.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Controls\FallbackBrushConverter.cs, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Light.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\Dark.xaml, D:\repos\wpf\src\Microsoft.DotNet.Wpf\src\Themes\PresentationFramework.Fluent\Resources\Theme\HC.xaml ModernWpf\Styles\DataGrid.xaml, ModernWpf\Controls\Primitives\FallbackBrushConverter.cs, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\CommonStyles\DataGridVisualStateTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, test\ModernWpf.WinUI.Tests\TemplateParityTests.cs, docs\datagrid-wpf-fluent-source-audit.md Official WPF Fluent-backed stock control docs\datagrid-wpf-fluent-source-audit.md maps WPF's stock DataGrid style against official WPF Fluent. ModernWpf deleted the old DataGridHelper, DataGridRowHelper, DataGridCellPresenter, ContentPresenterEx, FontIconFallback, DataGridCellExpanded, and row-group header guesses from the stock DataGrid path. The copied style now uses official WPF cell, row, row-header, column-header, column-floating-header, drop-separator, default DataGrid, and DataGrid CheckBox element styles with documented substitutions for mscorlib, Border.CornerRadius, and the localized FallbackBrushConverter.
AnnotatedScrollBar controls\dev\AnnotatedScrollBar\AnnotatedScrollBar.idl, controls\dev\AnnotatedScrollBar\AnnotatedScrollBar.h, controls\dev\AnnotatedScrollBar\AnnotatedScrollBar.cpp, controls\dev\AnnotatedScrollBar\AnnotatedScrollBar.xaml, controls\dev\AnnotatedScrollBar\AnnotatedScrollBar_themeresources.xaml, controls\dev\AnnotatedScrollBar\AnnotatedScrollBar_themeresources_perf2026.xaml, controls\dev\AnnotatedScrollBar\AnnotatedScrollBarPanningInfo.cpp, controls\dev\AnnotatedScrollBar\AnnotatedScrollBarLabel.cpp, controls\dev\AnnotatedScrollBar\APITests\AnnotatedScrollBarTests.cs, controls\dev\AnnotatedScrollBar\InteractionTests\AnnotatedScrollBarInteractionTests.cs, controls\dev\ScrollPresenter\ScrollPresenterPrimitives.idl, WinUIGallery\Samples\AnnotatedScrollBar\AnnotatedScrollBarPage.xaml, WinUIGallery\Samples\AnnotatedScrollBar\AnnotatedScrollBarPage.xaml.cs, WinUIGallery\Samples\AnnotatedScrollBar\AnnotatedscrollbarLinkedScrollview.txt ModernWpf.Controls\AnnotatedScrollBar\AnnotatedScrollBar.cs, ModernWpf.Controls\AnnotatedScrollBar\AnnotatedScrollBar.xaml, ModernWpf.Controls\AnnotatedScrollBar\AnnotatedScrollBarLabel.cs, ModernWpf.Controls\AnnotatedScrollBar\AnnotatedScrollBarPanningInfo.cs, ModernWpf.Controls\AnnotatedScrollBar\ScrollControllerPrimitives.cs, ModernWpf.Gallery\Pages\ScrollingSampleFactory.cs, test\ModernWpf.WinUI.Tests\AnnotatedScrollBar\AnnotatedScrollBarApiTests.cs, test\ModernWpf.WinUI.Tests\AnnotatedScrollBar\AnnotatedScrollBarSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, docs\annotatedscrollbar-winui3-source-audit.md Source-backed WPF port Refreshed against current official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; substantive product and converted Gallery inputs remain byte-current. ModernWpf follows source controller validation/clamping/requests/cancellation/direction, vertical panning shape, label creation/collision/tooltip/thumb ghost, source parts/resources, and no-standalone-peer ownership. The visible Gallery header/snippets now use current source ScrollView and ScrollPresenter.VerticalScrollController vocabulary while the actual WPF ScrollViewer/WrapPanel event adapter remains runtime-covered. Exact installed-Gallery 52x500 crops pass Light 1.20 and Dark 1.21 under a strict 1.5 zero-size-tolerance gate; scroll recordings prove 0%→55% movement. WPF substitutions remain documented for ScrollPresenter/composition/touch services, dispatcher/mouse input, tooltip hosting, item layout, and resource resolution.
TeachingTip controls/dev/TeachingTip/TeachingTip.idl, controls/dev/TeachingTip/TeachingTip.h, controls/dev/TeachingTip/TeachingTip.cpp, controls/dev/TeachingTip/TeachingTip.xaml, controls/dev/TeachingTip/TeachingTip_themeresources.xaml, controls/dev/TeachingTip/TeachingTip_themeresources_perf2026.xaml, controls/dev/TeachingTip/TeachingTipTemplateSettings.cpp, controls/dev/TeachingTip/TeachingTipOpenedEventArgs.cpp, controls/dev/TeachingTip/TeachingTipClosingEventArgs.cpp, controls/dev/TeachingTip/TeachingTipClosedEventArgs.cpp, controls/dev/TeachingTip/TeachingTipAutomationPeer.cpp, controls/dev/TeachingTip/APITests/TeachingTipTests.cs, controls/dev/TeachingTip/InteractionTests/TeachingTipTests.cs ModernWpf.Controls/TeachingTip/TeachingTip.cs, ModernWpf.Controls/TeachingTip/TeachingTip.xaml, ModernWpf.Controls/TeachingTip/TeachingTipTemplateSettings.cs, ModernWpf.Controls/TeachingTip/TeachingTipOpenedEventArgs.cs, ModernWpf.Controls/TeachingTip/TeachingTipClosingEventArgs.cs, ModernWpf.Controls/TeachingTip/TeachingTipClosedEventArgs.cs, ModernWpf.Controls/TeachingTip/TeachingTipAutomationPeer.cs, test/ModernWpf.WinUI.Tests/TeachingTip/TeachingTipApiTests.cs, test/ModernWpf.WinUI.Tests/TeachingTip/TeachingTipSourceAuditTests.cs, tools/visual-checks/Run-GalleryVisualChecks.ps1, docs/teachingtip-winui3-source-audit.md Source-backed WPF port Refreshed against official commit de3e767333c2f0717a6a70cb22bd192ced5ad885. Current template/resources remain source-shaped; the only post-snapshot code change compiles test hooks out of production. ModernWpf now additionally mirrors native popup automation-name/ID forwarding with title fallback and live property refresh. The peer retains source Pane/Window and Window-provider semantics. Strict installed-Gallery proof requires exact 135x32 closed and 224x64 open geometry under 4.0 / 10.0 gates: Light 3.43 / 9.30, Dark 2.94 / 8.28. Tests cover source open/close timing, cancellation/deferral, light dismiss, placement, resources, peer state, popup forwarding, source snapshot, and visual gates. WPF substitutions remain documented for XamlRoot/popup-root UIA integration, WinRT notification/window events, compositor rendering, F6/gamepad focus, Axe scans, and raw TestUI automation.
RatingControl src\controls\dev\RatingControl\RatingControl.cpp, src\controls\dev\RatingControl\RatingControl.h, src\controls\dev\RatingControl\RatingControl.xaml, src\controls\dev\RatingControl\RatingControl_themeresources.xaml, src\controls\dev\RatingControl\RatingControlAutomationPeer.cpp, src\controls\dev\RatingControl\RatingItemInfo.cpp, src\controls\dev\RatingControl\RatingItemFontInfo.cpp, src\controls\dev\RatingControl\RatingItemImageInfo.cpp, src\controls\dev\RatingControl\APITests\RatingControlTests.cs, src\controls\dev\RatingControl\InteractionTests\RatingControlTests.cs ModernWpf.Controls\RatingControl\RatingControl.cs, ModernWpf.Controls\RatingControl\RatingControl.properties.cs, ModernWpf.Controls\RatingControl\RatingControl.xaml, ModernWpf.Controls\RatingControl\RatingControlAutomationPeer.cs, ModernWpf.Controls\RatingControl\RatingItemImageInfo.cs, ModernWpf\Controls\RatingItemInfo.cs, ModernWpf\Controls\RatingItemFontInfo.cs, ModernWpf\Styles\RatingControl.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\RatingControl\RatingControlApiTests.cs, test\ModernWpf.WinUI.Tests\RatingControl\RatingControlInteractionTests.cs, docs\ratingcontrol-winui3-source-audit.md Source-backed WPF port docs\ratingcontrol-winui3-source-audit.md maps the whole control against WinUI 3 source. ModernWpf deleted the WPF-only RatingItemPathInfo API, path templates, path theme resources, and path fallback tests because local WinUI 3 source only has font and image item-info types. The WPF port now follows source template shape for MinHeight, LayoutRoot.Background, CaptionStackPanel, source caption metrics, named translate transforms, and foreground/background rating panels represented by StackPanelEx. The code now follows source-shaped resource caching, glyph measurement for scaled rendering size, image item sizing, net item spacing, 12px caption spacing, reset size, first-item pointer offset, and pointer-capture tracking. Tests cover source template/resources, font/image defaults, size resource changes, keyboard/value coercion, dependency-property binding, and automation value/range behavior. WPF substitutions remain documented for composition expression animation, pointer cancellation/device details, gamepad focus engagement, element sounds, TextLineBounds, AutomationProperties.AccessibilityView=Raw, and the currently loaded-but-unused RatingControlCaptionTopMargin resource.
PagerControl controls\dev\PagerControl\PagerControl.cpp, controls\dev\PagerControl\PagerControl.h, controls\dev\PagerControl\PagerControl.idl, controls\dev\PagerControl\PagerControl.xaml, controls\dev\PagerControl\PagerControl_themeresources.xaml, controls\dev\PagerControl\PagerControl_themeresources_perf2026.xaml, controls\dev\PagerControl\PagerControlTemplateSettings.cpp, controls\dev\PagerControl\PagerControlAutomationPeer.cpp, controls\dev\PagerControl\Strings\en-us\Resources.resw, controls\dev\PagerControl\APITests\PagerControlTests.cs, controls\dev\PagerControl\InteractionTests\PagerControlTests.cs ModernWpf.Controls\PagerControl\PagerControl.cs, ModernWpf.Controls\PagerControl\PagerControl.xaml, ModernWpf.Controls\PagerControl\PagerControlTemplateSettings.cs, ModernWpf.Controls\PagerControl\PagerControlAutomationPeer.cs, ModernWpf.Controls\PagerControl\Strings\Resources.resx, test\ModernWpf.WinUI.Tests\PagerControl\PagerControlApiTests.cs, test\ModernWpf.WinUI.Tests\PagerControl\PagerControlSourceAuditTests.cs, docs\pagercontrol-winui3-source-audit.md Source-backed WPF port Refreshed against official commit de3e767333c2f0717a6a70cb22bd192ced5ad885. All runtime, API, peer, resource, legacy-theme, and upstream test blobs remain byte-identical to the prior audit. The new perf2026 dictionary changes only equivalent storyboards to setters, already represented by ModernWpf's VisualStateEx.Setters. ModernWpf follows the source RootGrid, NumberBoxDisplay, ComboBoxDisplay, NumberPanelItemsRepeater, selection indicator, finite/infinite template-setting collections, source Auto threshold (ComboBox below 10; NumberBox at/above 10 and infinite), edge-button state logic, localized navigation automation strings, ellipsis algorithms, and Menu selection automation peer shape. The current WinUI Gallery commit has no PagerControl page, so row 8.35 uses product-source, behavior/accessibility, template/resource, and net462/net8/net10 build gates without substituting PipsPager or historical Gallery content. Focused tests pass 14/14. WPF substitutions remain documented for VisualStateEx.Setters, GridEx, SymbolIcon(Symbol.More), mixed object repeater items, WPF focus traversal, and English-only resource strings.
InfoBadge controls\dev\InfoBadge\InfoBadge.cpp, controls\dev\InfoBadge\InfoBadge.h, controls\dev\InfoBadge\InfoBadge.xaml, controls\dev\InfoBadge\InfoBadge_themeresources.xaml, controls\dev\InfoBadge\InfoBadgeTemplateSettings.cpp, controls\dev\InfoBadge\InfoBadgeTemplateSettings.h, controls\dev\Generated\InfoBadge.properties.cpp, controls\dev\Generated\InfoBadgeTemplateSettings.properties.cpp, controls\dev\CommonStyles\Common_themeresources_any.xaml ModernWpf.Controls\InfoBadge\InfoBadge.cs, ModernWpf.Controls\InfoBadge\InfoBadge.xaml, ModernWpf.Controls\InfoBadge\InfoBadgeTemplateSettings.cs, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\InfoBadge\InfoBadgeApiTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, docs\infobadge-winui3-source-audit.md Source-backed WPF port docs\infobadge-winui3-source-audit.md maps the whole control against current WinUI 3 source. The WPF port follows source display-kind selection, animated states, source RootGrid shape through GridEx, theme resources, informational solid-neutral background, and source SizeChanged radius ownership. A WPF pre-arrange bridge seeds the same radius before the first rendered frame, fixing a square NavigationView-hosted badge. Exact installed-Gallery 16x16 crops pass a strict 5.0 gate at Light 4.44 and Dark 3.73; tests cover rendered circular corners and center fill as well as API/template/resource behavior. Other substitutions remain documented for WinUI Grid.CornerRadius, template AutomationProperties.AccessibilityView=Raw, and WinUI's generated hresult_out_of_bounds exception path.
InfoBar controls\dev\InfoBar\InfoBar.cpp, controls\dev\InfoBar\InfoBar.h, controls\dev\InfoBar\InfoBar.xaml, controls\dev\InfoBar\InfoBar.idl, controls\dev\InfoBar\InfoBarAutomationPeer.cpp, controls\dev\InfoBar\InfoBarPanel.cpp, controls\dev\InfoBar\InfoBarTemplateSettings.cpp, controls\dev\InfoBar\InfoBar_themeresources.xaml, controls\dev\Generated\InfoBar.properties.cpp, controls\dev\Generated\InfoBarPanel.properties.cpp, controls\dev\Generated\InfoBarTemplateSettings.properties.cpp, controls\dev\InfoBar\InteractionTests\InfoBarTests.cs, controls\dev\InfoBar\Strings\en-us\Resources.resw, WinUIGallery\Samples\InfoBar\InfoBarPage.xaml, WinUIGallery\Samples\InfoBar\InfoBarPage.xaml.cs, WinUIGallery\Samples\InfoBar\ClosableInfobarLongShort.txt, WinUIGallery\Samples\InfoBar\ClosableInfobarOptionsChange.txt, WinUIGallery\Samples\InfoBar\ClosableInfobarOptionsDisplay.txt ModernWpf.Controls\InfoBar\InfoBar.cs, ModernWpf.Controls\InfoBar\InfoBar.xaml, ModernWpf.Controls\InfoBar\InfoBarAutomationPeer.cs, ModernWpf.Controls\InfoBar\InfoBarPanel.cs, ModernWpf.Controls\InfoBar\InfoBarTemplateSettings.cs, ModernWpf\Resources\Strings.resx, ModernWpf.Gallery\Pages\StatusInfoSampleFactory.cs, test\ModernWpf.WinUI.Tests\InfoBar\InfoBarApiTests.cs, test\ModernWpf.WinUI.Tests\InfoBar\InfoBarSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, docs\infobar-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; substantive product and converted Gallery inputs remain byte-current after the root move. ModernWpf follows current defaults, exact close/cancel event ordering, null icon-element reset, localized close/icon names, visibility/severity/foreground/content states, close command/chrome, source panel layout with the documented physical-pixel TextBlock bridge, and StatusBar/InfoBar open-only automation membership. All three Gallery examples and every option family are runtime-covered. Exact installed-Gallery 560x95 crops pass a strict 2.0 gate at Light 1.33 and Dark 1.46, now with zero size tolerance; On-to-Off recordings pass at local deltas 4.47 / 8.786. WPF substitutions remain documented for notification events, AccessibilityView, localized landmark metadata, Border/ContentPresenterEx/VisualStateEx, text wrapping, and scoped default button/hyperlink styles.
PersonPicture src\controls\dev\PersonPicture\PersonPicture.cpp, src\controls\dev\PersonPicture\PersonPicture.xaml, src\controls\dev\PersonPicture\PersonPicture.idl, src\controls\dev\PersonPicture\PersonPictureAutomationPeer.cpp, src\controls\dev\PersonPicture\PersonPictureTemplateSettings.h, src\controls\dev\PersonPicture\InitialsGenerator.cpp, src\controls\dev\PersonPicture\PersonPicture_themeresources.xaml, src\controls\dev\PersonPicture\APITests\PersonPictureTests.cs ModernWpf.Controls\PersonPicture\PersonPicture.cs, ModernWpf.Controls\PersonPicture\PersonPicture.properties.cs, ModernWpf.Controls\PersonPicture\PersonPicture.xaml, ModernWpf.Controls\PersonPicture\PersonPictureAutomationPeer.cs, ModernWpf.Controls\PersonPicture\PersonPictureTemplateSettings.cs, ModernWpf.Controls\PersonPicture\InitialsGenerator.cs, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\PersonPicture\PersonPictureApiTests.cs, docs\personpicture-winui3-source-audit.md Source-backed WPF port docs\personpicture-winui3-source-audit.md maps the whole control against WinUI 3 source. ModernWpf deleted the old WPF-only PlaceholderIcon / StreamGeometry placeholder path and now uses WinUI's single InitialsTextBlock state-setter model for NoPhotoOrInitials and Group. The default style exposes source chrome through Background, BorderBrush, and BorderThickness, the main ellipse binds to those templated-parent values with a WPF stroke-thickness substitute, and PreferSmallImage now exists with the source default/no-op property-change behavior. Tests cover source defaults, automation names, image/initials/badge priority, visual-state setters, template shape, theme resources, and the removed placeholder path. Exact installed-Gallery 96x96 avatar crops now pass a strict 0.5 gate at Light 0.39 and Dark 0.35. WPF substitutions remain documented for WinRT Contact and async contact photo loading, missing AccessibilityView=Raw, missing TextLineBounds / IsTextScaleFactorEnabled on WPF TextBlock, missing x:DeferLoadStrategy, and WPF BorderThickness to ellipse StrokeThickness typing.
SelectorBar controls\dev\SelectorBar\SelectorBar.cpp, controls\dev\SelectorBar\SelectorBar.h, controls\dev\SelectorBar\SelectorBarItem.cpp, controls\dev\SelectorBar\SelectorBar.xaml, controls\dev\SelectorBar\SelectorBar_perf2026.xaml, controls\dev\SelectorBar\SelectorBar.idl, controls\dev\SelectorBar\SelectorBar_themeresources.xaml, controls\dev\SelectorBar\SelectorBarItemAutomationPeer.cpp, controls\dev\SelectorBar\Strings\en-us\Resources.resw, controls\dev\SelectorBar\APITests\SelectorBarTests.cs, controls\dev\SelectorBar\InteractionTests\SelectorBarTests.cs, controls\dev\ItemsView\ItemsViewAutomationPeer.cpp, controls\dev\ItemContainer\ItemContainerAutomationPeer.cpp ModernWpf.Controls\SelectorBar\SelectorBar.cs, ModernWpf.Controls\SelectorBar\SelectorBarItem.cs, ModernWpf.Controls\SelectorBar\SelectorBar.xaml, ModernWpf.Controls\SelectorBar\SelectorBarItemsControl.cs, ModernWpf.Controls\SelectorBar\SelectorBarAutomationPeer.cs, ModernWpf.Controls\SelectorBar\SelectorBarItemAutomationPeer.cs, ModernWpf.Controls\SelectorBar\Strings\Resources.resx, test\ModernWpf.WinUI.Tests\SelectorBar\SelectorBarApiTests.cs, test\ModernWpf.WinUI.Tests\SelectorBar\SelectorBarSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Record-GalleryControlInteractions.ps1, docs\selectorbar-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; the only post-baseline SelectorBar history is the repository-root move. ModernWpf retains the source-shaped ItemsView/item/state/resource/selection/input contract and exact 284x48 Gallery geometry. The active accessibility tree now matches current WinUI: internal ItemsView is List/Selection, items are ListItem/SelectionItem, the internal List owns selection, and the localized fallback is resource-backed. A Raw-only outer WPF peer preserves harness addressability without duplicating the accessible control. Strict live Light/Dark deltas are 1.99 / 2.58 under 3.0; SelectionItem recordings prove the current first-example state transition. WPF substitutions remain documented for ItemsView/ItemContainer/StackLayout, compositor animation, XY focus, Frame/ItemsView Gallery surfaces, and additional localization packs.
BreadcrumbBar src\controls\dev\Breadcrumb\BreadcrumbBar.cpp, src\controls\dev\Breadcrumb\BreadcrumbBar.xaml, src\controls\dev\Breadcrumb\BreadcrumbBar_themeresources.xaml, src\controls\dev\Breadcrumb\BreadcrumbBarElementFactory.cpp, src\controls\dev\Breadcrumb\BreadcrumbIterable.cpp, src\controls\dev\Breadcrumb\BreadcrumbIterator.cpp, src\controls\dev\Breadcrumb\BreadcrumbLayout.cpp, src\controls\dev\Breadcrumb\BreadcrumbBarItem.cpp, src\controls\dev\Breadcrumb\BreadcrumbBarItemAutomationPeer.cpp, src\dxaml\xcp\core\text\TextBlock\TextBlock.cpp, src\dxaml\xcp\core\inc\EnterParams.h ModernWpf.Controls\BreadcrumbBar\BreadcrumbBar.cs, ModernWpf.Controls\BreadcrumbBar\BreadcrumbBarItem.cs, ModernWpf.Controls\BreadcrumbBar\BreadcrumbElementFactory.cs, ModernWpf.Controls\BreadcrumbBar\BreadcrumbIterable.cs, ModernWpf.Controls\BreadcrumbBar\BreadcrumbLayout.cs, ModernWpf.Controls\BreadcrumbBar\BreadcrumbBar.xaml, ModernWpf.Controls\BreadcrumbBar\BreadcrumbBarAutomationPeer.cs, ModernWpf.Controls\BreadcrumbBar\BreadcrumbBarItemAutomationPeer.cs, ModernWpf\Controls\ContentPresenterEx.cs, ModernWpf\ModernWpfControlsResources.xaml, test\ModernWpf.WinUI.Tests\BreadcrumbBar\BreadcrumbBarApiTests.cs, test\ModernWpf.WinUI.Tests\LayoutCompatibility\LayoutCompatibilityApiTests.cs, docs\breadcrumbbar-winui3-source-audit.md Source-backed WPF port docs\breadcrumbbar-winui3-source-audit.md maps the whole control against WinUI 3 source. ModernWpf deleted the guessed PART_RootPanel / manual StackPanel rebuild path and now follows the source ItemsRepeater, leading null ellipsis item, source BreadcrumbLayout, source element factory, item-type visual states, ellipsis dropdown repeater, shifted click index mapping, current XamlAutoFontFamily equivalent, and WinUI TextBlock physical-pixel ceiling semantics. The installed Gallery width vector and 530x26 crop now match exactly; strict Light/Dark deltas are 2.53 / 2.33 under a 3.0 gate. WPF substitutions remain documented for GridEx / ContentPresenterEx chrome, VisualStateEx.Setters, named flyout resource lookup, WPF focus/mouse input, missing AccessibilityView, localized resource strings, and residual glyph antialiasing.
ToggleSwitch dxaml\xcp\dxaml\lib\ToggleSwitch_Partial.cpp, dxaml\xcp\dxaml\lib\ToggleSwitch_Partial.h, dxaml\xcp\dxaml\lib\ToggleSwitchAutomationPeer_Partial.cpp, dxaml\xcp\components\controls\KeyDownUp\inc\ToggleSwitchKeyProcess.h, dxaml\xcp\components\controls\KeyDownUp\unittests\toggleswitch\ToggleSwitchUnitTests.cpp, dxaml\xcp\tools\XCPTypesAutoGen\XamlOM\Model\Microsoft.UI.Xaml.Controls.cs, dxaml\xcp\tools\XCPTypesAutoGen\XamlOM\Model\Microsoft.UI.Xaml.Controls.Primitives.cs, controls\dev\CommonStyles\ToggleSwitch_themeresources.xaml, controls\dev\CommonStyles\ToggleSwitch_themeresources_perf2026.xaml, dxaml\test\native\external\controls\toggleswitch\ToggleSwitchIntegrationTests.cpp, dxaml\test\native\external\controls\toggleswitch\ToggleSwitchAutomationIntegrationTests.cpp, controls\test\MUXControlsTestApp\verification\ToggleSwitch.xml, WinUIGallery\Samples\ToggleSwitch\ToggleSwitchPage.xaml, WinUIGallery\Samples\ToggleSwitch\ToggleSwitchPage.xaml.cs, WinUIGallery\Samples\ToggleSwitch\ToggleSwitchSimple.txt, WinUIGallery\Samples\ToggleSwitch\ToggleSwitchCustom.txt, tests\WinUIGallery.UITests\Tests\ToggleSwitch.cs ModernWpf.Controls\ControlHeaderPlacement.cs, ModernWpf.Controls\ToggleSwitch\ToggleSwitch.cs, ModernWpf.Controls\ToggleSwitch\ToggleSwitch.xaml, ModernWpf.Controls\ToggleSwitch\ToggleSwitchTemplateSettings.cs, ModernWpf.Controls\ToggleSwitch\ToggleSwitchAutomationPeer.cs, ModernWpf.Controls\ToggleSwitch\Strings\Resources.resx, ModernWpf.Gallery\Pages\BasicInputSampleFactory.cs, ModernWpf\ModernWpfControlsResources.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\ToggleSwitch\ToggleSwitchApiTests.cs, test\ModernWpf.WinUI.Tests\ToggleSwitch\ToggleSwitchSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, docs\toggleswitch-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Runtime, peer, key, XamlOM, classic theme, and native-test sources remain byte-current; the new perf2026 dictionary is an equivalent setter-based variant already represented by VisualStateEx.Setters. The WPF port carries source template lifecycle, tap/drag/manipulation/translations, key sequencing, common/focus/content/toggle/drag/header states, listener-first automation events, Toggle-only Button peer, current theme resources, and the current Gallery simple/custom examples with ProgressRing reaction. The explicit 72-DIP width/zero-MinWidth and centered-content settings are measured WPF platform-default adapters. Fresh installed-Gallery proof passes exact resting 72x40 crops at Light 0.92 and Dark 1.06 under 1.5, plus exact On-state 92x60 crops at 0.53 / 0.48; primary size tolerance is zero. Product/source tests pass 55/55, Gallery tests pass 2/2 on net8 and net10, and net462 builds warning-free. Documented substitutions cover GamepadA, element sounds, native touch arbitration, compositor/RepositionThemeAnimation, WPF Border/Grid chrome, cloned Freezables, AccessibilityView, and WinRT automation internals.
NavigationView controls\dev\NavigationView\NavigationView.cpp, controls\dev\NavigationView\NavigationView.h, controls\dev\NavigationView\NavigationView.idl, controls\dev\NavigationView\NavigationView.xaml, controls\dev\NavigationView\NavigationView_themeresources.xaml, controls\dev\NavigationView\NavigationBackButton.xaml, controls\dev\NavigationView\NavigationViewAutomationPeer.cpp, controls\dev\NavigationView\NavigationViewItem*.cpp, controls\dev\NavigationView\TopNavigationViewDataProvider.cpp, controls\dev\NavigationView\NavigationViewItemsFactory.cpp, controls\dev\NavigationView\NavigationViewTemplateSettings.cpp, controls\dev\NavigationView\NavigationView_ApiTests\NavigationViewTests.cs, controls\dev\NavigationView\NavigationView_InteractionTests\*.cs, WinUIGallery\Samples\NavigationView\* ModernWpf.Controls\NavigationView\*, ModernWpf.Controls\SplitView\SplitView.cs, ModernWpf\Styles\NavigationView.xaml, ModernWpf\Styles\NavigationBackButton.xaml, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, ModernWpf.Gallery\Pages\NavigationSampleFactory.cs, test\ModernWpf.WinUI.Tests\NavigationView\NavigationViewApiTests.cs, test\ModernWpf.WinUI.Tests\NavigationView\NavigationViewSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Record-GalleryControlInteractions.ps1, docs\navigationview-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. ModernWpf retains source-shaped pane/display-mode, menu/footer, selection, top-navigation, hierarchy, template-settings, automation, back-button, resources, and depth-16 shadow behavior. It now also ports the current non-negative pane MaxHeight conditions and the deferred child-flyout stale-state guard, each with a runtime regression. All eight current Gallery examples/options/snippets are pinned. Exact 745x460 installed-Gallery crops pass a strict 1.2 gate at Light 1.03 and Dark 0.93; selection recordings pass in both themes. NavigationView tests pass 54/54, SplitView 14/14, Gallery coverage 7/7 on net8/net10, and Gallery builds on net462/net8/net10. Remaining WPF substitutions for acrylic/composition, popup/XamlRoot, focus/gamepad/access keys, top-overflow measurement, glyph antialiasing, x:Bind, and recycle metadata are documented.
FlyoutBase / Flyout / MenuFlyout dxaml\xcp\dxaml\lib\FlyoutBase_partial.cpp, dxaml\xcp\dxaml\lib\FlyoutBase_partial.h, dxaml\xcp\dxaml\lib\Flyout_partial.cpp, dxaml\xcp\dxaml\lib\FlyoutPresenter_partial.cpp, dxaml\xcp\dxaml\lib\MenuFlyout_Partial.cpp, dxaml\xcp\dxaml\lib\winrtgeneratedclasses\FlyoutBaseClosingEventArgs.g.cpp, dxaml\xcp\dxaml\lib\winrtgeneratedclasses\FlyoutShowOptions.g.cpp, dxaml\xcp\tools\XCPTypesAutoGen\XamlOM\Model\Microsoft.UI.Xaml.Controls.Primitives.cs, controls\dev\CommonStyles\FlyoutPresenter_themeresources.xaml, WinUIGallery\Samples\Flyout\* ModernWpf.Controls\Flyout\*, ModernWpf.Controls\MenuFlyout\*, ModernWpf\Controls\Primitives\PopupEx.cs, ModernWpf\Controls\Primitives\CustomPopupPlacementHelper.cs, ModernWpf.Gallery\Pages\DialogsFlyoutsSampleFactory.cs, test\ModernWpf.WinUI.Tests\Flyout\*, test\ModernWpf.WinUI.Tests\MenuFlyout\*, test\ModernWpf.Gallery.Tests\FlyoutSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, tools\visual-checks\Record-GalleryControlInteractions.ps1, docs\flyoutbase-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Post-baseline product history is bounded to root move 8463f45162149de0ec3ad7df752596893fe3e13e and current placement fix 2db27f71f857363d6a9a4485e01c8b8fdbe02499, already ported to bottom-align overflowing side flyouts within the monitor work area; the one-example Gallery is unchanged after conversion 14a4a1a2b8ddc527dc4a7d5f7e743d7c2bc97db7. ModernWpf retains source-shaped read-only Target and constraint state, cancelable Closing, current/staged flyout sequencing, placement-target unload closure, cloned show options, null-target positioned opens, exclusion-rect avoidance, placement fallback ordering, transient show modes, presenter metrics, roles/providers, and confirmation-close behavior. Fresh fully live Light artifacts/visual-checks/20260718-233022-683-69796/report.md and Dark artifacts/visual-checks/20260718-233125-103-42428/report.md pass exact 90x32 trigger crops at 2.63 / 2.21 and 366x96 versus 366x97 open crops at 10.07 / 3.72. Light/Dark OpenRepeat recordings artifacts/gallery-recordings/20260718-233216-705/report.md and artifacts/gallery-recordings/20260718-233313-024/report.md prove repeated open/confirmation-close behavior. Product tests pass 24/24; focused Gallery sample/source/gate/popup-HWND tests pass 6/6 on net8/net10; builds pass net462/net8/net10 with zero errors. Documented WPF substitutions cover popup-window root constraints, cancellation restoration, positioned placement rectangles, screen-bound pointer tracking, top-level staging, and absent per-XamlRoot/child-flyout/native-composition metadata.
Popup (Gallery sample) WinUIGallery\Samples\Popup\PopupPage.xaml, WinUIGallery\Samples\Popup\PopupPage.xaml.cs, WinUIGallery\Samples\Popup\PopupOffsetPositioning.txt ModernWpf.Gallery\Pages\DialogsFlyoutsSampleFactory.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\PopupSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, tools\visual-checks\Record-GalleryControlInteractions.ps1, docs\popup-winui-gallery-source-audit.md Source-backed WPF platform adapter Refreshed against official Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; page/code/snippet blobs 6a5d35d9acf43067bb7cb9317e2d1ad863dbade2, ea3a3be6beecbaecb15f9a9612767d0e74c9b992, and 711eea6ce1ead50ef91bcf5eba7c011ddf892af9 remain unchanged after conversion 14a4a1a2b8ddc527dc4a7d5f7e743d7c2bc97db7. The live adapter preserves the one-example offset surface, NumberBox ranges/steps/values, inverse WPF StaysOpen mapping, option disable/restore lifecycle, explicit Close, source Border/spacing/resources, Text/Button roles, and Invoke. A measured 22-DIP WPF heading minimum bridges the one-DIP platform line-box difference and yields exact 240x96 surface geometry. Fresh Light artifacts/visual-checks/20260718-234231-942-70740/report.md passes exact 189x32 / 240x96 crops at 3.33 / 2.63; Dark artifacts/visual-checks/20260718-234257-459-77704/report.md passes at 3.13 / 2.66. Light/Dark OpenRepeat recordings artifacts/gallery-recordings/20260718-234329-029/report.md and artifacts/gallery-recordings/20260718-234435-353/report.md pass. Focused Gallery coverage passes 3/3 on net8/net10; PowerShell parsers and Gallery builds on net462/net8/net10 pass. WPF's separate transparent popup HWND is the documented platform substitution for WinUI's in-window Popup.
RadioMenuFlyoutItem controls\dev\RadioMenuFlyoutItem\RadioMenuFlyoutItem.cpp, header/IDL/generated inputs, classic/perf2026 templates, interaction/TestUI sources, inherited MenuFlyoutItem/ToggleMenuFlyoutItem automation peers, and current WinUIGallery\Samples\MenuFlyout radio consumer ModernWpf.Controls\RadioMenuItem\RadioMenuItem.cs, generated properties, RadioMenuItem.xaml, product source/API/interaction tests, ModernWpf.Gallery\Pages\MenusToolbarsSampleFactory.cs, Gallery consumer/source/gate tests, docs\radiomenuflyoutitem-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Runtime/API/classic theme/interaction/TestUI and inherited peer blobs remain byte-current; perf2026 only converts two narrow-padding assignments to equivalent setters and the root move is nonfunctional. ModernWpf retains source weak group selection, guarded uncheck, load/unload lifetime, submenu check mirroring, 12-DIP mark, icon/accelerator states, current resources, and the Gallery groups/defaults. MenuItem role/name plus Toggle states and guarded re-toggle are regression-covered. Product/source tests pass 9/9 and Gallery tests 3/3 on net8/net10. Shared MenuFlyout captures are presenter/chrome evidence rather than isolated radio pixel proof. WPF substitutions remain documented for MenuItem/public identity, dispatcher-owned process map, popup/WinRT peer plumbing, geometry font fallback, and input-device narrow state.
ContentDialog dxaml\xcp\dxaml\lib\ContentDialog_Partial.cpp, dxaml\xcp\dxaml\lib\ContentDialog_Partial.h, dxaml\xcp\dxaml\lib\ContentDialogMetadata.cpp, dxaml\xcp\tools\XCPTypesAutoGen\XamlOM\Model\Microsoft.UI.Xaml.Controls.cs, controls\dev\CommonStyles\ContentDialog_themeresources.xaml, dxaml\test\native\external\controls\contentdialog\ContentDialogIntegrationTests.cpp, dxaml\test\native\external\controls\contentdialog\ContentDialogAutomationIntegrationTests.cpp, WinUIGallery\Samples\ContentDialog\* ModernWpf.Controls\ContentDialog\ContentDialog.cs, ModernWpf.Controls\ContentDialog\ContentDialog.xaml, ModernWpf.Controls\ContentDialog\ContentDialogAutomationPeer.cs, ModernWpf.Gallery\Pages\DialogsFlyoutsSampleFactory.cs, test\ModernWpf.WinUI.Tests\ContentDialog\ContentDialogApiTests.cs, test\ModernWpf.WinUI.Tests\ContentDialog\ContentDialogSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, tools\visual-checks\Record-GalleryControlInteractions.ps1, docs\contentdialog-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; root move 8463f45162149de0ec3ad7df752596893fe3e13e is the only product history hit and the converted two-example Gallery remains unchanged. ModernWpf retains the source API, template/states, result/deferral/default-button/keyboard flow, depth-128 shadow, font metrics, and modal Window-pattern peer. Strict proof requires exact 101x32 closed geometry under 4.0 and the six-element surface under 7.0 with a two-pixel aggregate size allowance: Light 3.59 / 6.59, Dark 2.62 / 6.15. OpenRepeat recordings prove Cancel close and reopen in both themes. Product/source tests pass 18/18 and Gallery tests 2/2 on net8/net10. XamlRoot/SIP/native composition, gamepad/access-key paths, and XamlUICommand binding remain documented WPF substitutions.
DropDownButton controls\dev\DropDownButton\DropDownButton.cpp, headers/IDL/generated inputs, classic/perf2026 templates, theme resources, automation peer, interaction/TestUI tests, and current WinUIGallery DropDownButton page/definitions/image ModernWpf.Controls\DropDownButton\DropDownButton.cs, ModernWpf.Controls\DropDownButton\DropDownButton.xaml, ModernWpf.Controls\DropDownButton\DropDownButtonAutomationPeer.cs, theme resources, ModernWpf.Gallery\Pages\BasicInputSampleFactory.cs, product/Gallery source tests, visual checker/recorder, docs\dropdownbutton-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Bounded product history contains only root move 8463f45162149de0ec3ad7df752596893fe3e13e; perf2026 converts equivalent state assignments to setters already used locally. ModernWpf retains current-flyout rebinding, replacement-flyout isolation, Button plus ExpandCollapse automation/state notifications, the source 12x12 chevron, state/theme/chrome resources, exact 96-DPI elevation endpoints, and both current Email examples including placement, menu items, glyphs, and accessible name. Fresh exact 78x32 comparisons pass Light 3.68 / Dark 2.69 under 4.0; both OpenRepeat recordings pass. Product/source tests pass 10/10 and Gallery tests 3/3 on net8/net10. WPF substitutions remain documented for GridEx/ContentPresenterEx, FontIconFallback, VisualStateEx, Raw accessibility, Popup HWND hosting, and display-pipeline antialiasing.
NumberBox controls\dev\Generated\NumberBox.properties.cpp, controls\dev\Generated\NumberBox.properties.h, controls\dev\Generated\NumberBoxAutomationPeer.properties.cpp, controls\dev\NumberBox\NumberBox.cpp, controls\dev\NumberBox\NumberBox.h, controls\dev\NumberBox\NumberBox.idl, controls\dev\NumberBox\NumberBox.xaml, controls\dev\NumberBox\NumberBox_perf2026.xaml, controls\dev\NumberBox\NumberBox_themeresources.xaml, controls\dev\NumberBox\NumberBoxAutomationPeer.cpp, controls\dev\NumberBox\NumberBoxParser.cpp, controls\dev\NumberBox\APITests\NumberBoxTests.cs, controls\dev\NumberBox\InteractionTests\NumberBoxTests.cs, controls\dev\NumberBox\Strings\en-us\Resources.resw, WinUIGallery\Samples\NumberBox\NumberBoxPage.xaml, WinUIGallery\Samples\NumberBox\NumberBoxPage.xaml.cs, WinUIGallery\Samples\NumberBox\NumberboxEvaluatesExpressions.txt, WinUIGallery\Samples\NumberBox\NumberboxSpinButton.txt, WinUIGallery\Samples\NumberBox\FormattedNumberboxRoundsNearest.txt ModernWpf.Controls\NumberBox\NumberBox.cs, ModernWpf.Controls\NumberBox\NumberBox.properties.g.cs, ModernWpf.Controls\NumberBox\DefaultNumberRounder.cs, ModernWpf.Controls\NumberBox\NumberBox.xaml, ModernWpf.Controls\NumberBox\NumberBoxAutomationPeer.cs, ModernWpf.Controls\NumberBox\NumberBoxParser.cs, ModernWpf.Gallery\Pages\TextSampleFactory.cs, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\NumberBox\NumberBoxApiTests.cs, test\ModernWpf.WinUI.Tests\NumberBox\NumberBoxInteractionTests.cs, test\ModernWpf.WinUI.Tests\NumberBox\NumberBoxSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, docs\numberbox-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. All audited product blobs remain byte-current after the root move except the native whitespace table becoming function-local to remove a DLL initializer; WPF String.Trim is already behaviorally equivalent. The perf2026 XAML only replaces discrete assignment animations with setters. ModernWpf follows source template unhook/re-registration, popup helper, significant-digit formatting, NaN guard, expression parsing/validation, key/wheel/step/wrap paths, UIA Name/LabeledBy forwarding, source-owned placement/enabled states, part tree/glyphs/resources, and RangeValue Spinner peer. The current three-example Gallery page, options, quarter formatter, names, accessible name, and source snippets are pinned. Exact resting 132x59 crops pass Light 1.84 / Dark 1.74 under 2.5; exact value-changed 152x79 crops pass 1.69 / 1.02 under 2.0, with zero size tolerance for both. Product/source tests pass 18/18, Gallery tests pass 2/2 on net8/net10, and net462 builds warning-free. WPF substitutions remain documented for popup/shadow/root-bounds hosting, TextBox PART_ContentHost and trigger/perf-setter differences, popup focus, resource scope, non-FE ColumnDefinition setters, WinRT formatting, and High Contrast resource ownership.
HyperlinkButton current-root dxaml\xcp\dxaml\lib\HyperLinkButton_Partial.*, HyperlinkButtonAutomationPeer_Partial.*, generated API, XamlOM, classic/perf2026 theme resources, native integration tests, and current WinUI Gallery page/code/two snippets ModernWpf.Controls\HyperlinkButton\HyperlinkButton.cs, HyperlinkButton.xaml, HyperlinkButtonAutomationPeer.cs, ModernWpf.Gallery\Pages\BasicInputSampleFactory.cs, current snippet copies, product/Gallery source/API/sample/gate tests, visual checker, docs\hyperlinkbutton-winui3-source-audit.md Source-backed WPF port Refreshed against current official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Runtime/API/XamlOM/peer/classic-theme/native-test blobs remain byte-identical to baseline c70471c511a0168b61dcca13af9556465f26b673; perf2026 only converts nine zero-duration assignments to equivalent setters and the root move is nonfunctional. ModernWpf retains source NavigateUri/no TargetName, click ordering, desktop launch substitute, Hyperlink/Invoke semantics and disabled rejection, ButtonPadding, current state/theme resources, and both current Gallery examples. Exact 157x32 crops pass Light 1.48 / Dark 1.47 under 1.6; product/source tests pass 5/5 and Gallery tests 3/3 on net8/net10. WPF substitutions remain documented for desktop launcher, Raw annotation, native underline/backplate text, x:Bind, and VisualStateEx.Setters.
IconSource / ImageIcon dxaml\xcp\dxaml\lib\IconSource_Partial.cpp, dxaml\xcp\dxaml\lib\BitmapIconSource_Partial.cpp, dxaml\xcp\dxaml\lib\FontIconSource_Partial.cpp, dxaml\xcp\dxaml\lib\PathIconSource_Partial.cpp, dxaml\xcp\dxaml\lib\SymbolIconSource_Partial.cpp, controls\dev\IconSource\ImageIconSource.cpp, controls\dev\IconSource\IconSource.idl, controls\dev\ImageIcon\ImageIcon.cpp, controls\dev\ImageIcon\ImageIcon.xaml, controls\dev\IconSource\APITests\IconSourceApiTests.cs, controls\dev\ImageIcon\APITests\ImageIconTests.cs, controls\dev\DllHost\SharedHelpers.cpp ModernWpf\IconSource\IconSource.cs, ModernWpf\IconSource\BitmapIconSource.cs, ModernWpf\IconSource\FontIconSource.cs, ModernWpf\IconSource\PathIconSource.cs, ModernWpf\IconSource\SymbolIconSource.cs, ModernWpf\IconSource\ImageIconSource.cs, ModernWpf\IconElement\FontIcon.cs, ModernWpf\IconElement\ImageIcon.cs, ModernWpf.Controls\Common\SharedHelpers.cs, test\ModernWpf.WinUI.Tests\IconSource\IconSourceApiTests.cs, test\ModernWpf.WinUI.Tests\IconSource\IconSourceSourceAuditTests.cs, docs\iconsource-imageicon-winui3-source-audit.md Source-backed WPF port Refreshed against current official commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. ModernWpf follows current direct-Image ImageIcon shape, base Foreground application, weak live-element updates, concrete property mapping, and all WPF-feasible shared-helper conversions including ImageIconSource. The integrated Gallery bitmap ImageIcon now has its own exact 100x89 Light/Dark crop under a strict 2.0/zero-size-tolerance gate, passing at 1.49 / 1.17. WPF substitutions remain for generated metadata, OS text scaling, RTL transforms, AnimatedIconSource exclusion, and SVG DrawingImage adaptation.
IconElement family dxaml\xcp\core\core\elements\icon.cpp, dxaml\xcp\core\inc\icon.h, dxaml\xcp\dxaml\lib\SymbolIcon_Partial.cpp, XamlOM/generated IconElement/FontIcon/SymbolIcon/PathIcon/BitmapIcon inputs, native integration suites, and WinUIGallery\Samples\IconElement\* ModernWpf\IconElement\IconElement.cs, ModernWpf\IconElement\FontIcon.cs, ModernWpf\IconElement\SymbolIcon.cs, ModernWpf\IconElement\PathIcon.cs, ModernWpf\IconElement\BitmapIcon.cs, ModernWpf\IconSource\FontIconSource.cs, ModernWpf.Gallery\Pages\StylesSampleFactory.cs, product/Gallery source tests, visual checker/recorder, docs\iconelement-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. ModernWpf now matches all 197 current Symbol glyph remaps, Fluent-first font fallback, inherited FontStyle/FontWeight, owner-level retained RTL mirroring, default Path stretch, string conversion, and peerless accessibility boundary. BitmapIcon preserves URI/foreground/monochrome behavior through a documented WPF Image/opacity-mask substitute; the private Grid layout host substitutes for current WinUI's opt-in direct child without affecting public pixels. Exact 50x51 Light/Dark crops pass at 0.02 under 0.1; monochrome recordings pass, AppBarButton cross-control checks pass, product/source tests are 23/23, and Gallery tests are 4/4 on net8/net10.
MenuBar controls\dev\MenuBar\MenuBar.cpp, controls\dev\MenuBar\MenuBar.h, controls\dev\MenuBar\MenuBar.xaml, controls\dev\MenuBar\MenuBar_themeresources.xaml, controls\dev\MenuBar\MenuBarItem.cpp, controls\dev\MenuBar\MenuBarItem.h, controls\dev\MenuBar\MenuBarItem.xaml, controls\dev\MenuBar\MenuBarItemFlyout.cpp, controls\dev\MenuBar\MenuBarAutomationPeer.cpp, controls\dev\MenuBar\MenuBarItemAutomationPeer.cpp, controls\dev\MenuBar\MenuBar_InteractionTests\MenuBarTests.cs, WinUIGallery\Samples\MenuBar\* ModernWpf.Controls\MenuBar\*, ModernWpf.Controls\MenuFlyout\MenuFlyout.cs, ModernWpf.Gallery\Pages\MenusToolbarsSampleFactory.cs, test\ModernWpf.WinUI.Tests\MenuBar\MenuBarApiTests.cs, test\ModernWpf.Gallery.Tests\MenuBarSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, tools\visual-checks\Record-GalleryControlInteractions.ps1, docs\menubar-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Ten runtime/template/peer/theme blobs remain byte-current; later history only packages perf resources and performs root move 8463f45162149de0ec3ad7df752596893fe3e13e. ModernWpf retains the source control/item collections, flyout mirroring, parent open state, pointer/key/access-key paths, states, MenuBar/MenuItem roles, and Invoke/ExpandCollapse. The current three-example Gallery's live labels, historical snippet ellipses, accelerators, submenus, separators, radio groups, outputs, and accessibility are pinned. This pass adds the missing WinUI leaf-invocation dismissal and scopes WPF system-menu typography/content inset plus asymmetric device-rounding padding to MenuBarItemFlyout, restoring exact four-row geometry without disturbing the separately locked MenuFlyout. Fresh Light artifacts/visual-checks/20260719-000953-705-5868/report.md passes exact 158x40 / 96x134 versus 98x134 crops at 2.63 / 8.61; Dark artifacts/visual-checks/20260719-001049-872-102252/report.md passes at 2.57 / 6.74. OpenRepeat recordings artifacts/gallery-recordings/20260719-003628-180/report.md and artifacts/gallery-recordings/20260719-003722-561/report.md prove Exit dismissal and reopen. Product tests pass 12/12; focused Gallery coverage passes 4/4 on net8/net10; builds pass net462/net8/net10 with zero errors. WPF substitutions for popup HWND/pass-through, XYFocus/gamepad/access-key display mode, Raw accessibility, stock MenuItem acceptance, and renderer-specific font/rounding remain documented.
ProgressBar controls\dev\ProgressBar\ProgressBar.cpp, controls\dev\ProgressBar\ProgressBar.h, controls\dev\ProgressBar\ProgressBar.idl, controls\dev\ProgressBar\ProgressBar.xaml, controls\dev\ProgressBar\ProgressBar_themeresources.xaml, controls\dev\ProgressBar\ProgressBarAutomationPeer.cpp, controls\dev\ProgressBar\ProgressBarTemplateSettings.cpp, controls\dev\Generated\ProgressBar.properties.cpp, controls\dev\ProgressBar\APITests\ProgressBarTests.cs, controls\dev\ProgressBar\InteractionTests\ProgressBarTests.cs, WinUIGallery\Samples\ProgressBar\ProgressBarPage.xaml, WinUIGallery\Samples\ProgressBar\ProgressBarPage.xaml.cs, WinUIGallery\Samples\ProgressBar\DeterminateProgressBar.txt, WinUIGallery\Samples\ProgressBar\IndeterminateProgressBar.txt ModernWpf\ProgressBar\ProgressBar.cs, ModernWpf\ProgressBar\ProgressBar.xaml, ModernWpf\ProgressBar\ProgressBarAutomationPeer.cs, ModernWpf\ProgressBar\ProgressBarTemplateSettings.cs, ModernWpf\Controls\Primitives\ProgressBarIndicatorRasterOverlay.cs, ModernWpf.Gallery\Pages\StatusInfoSampleFactory.cs, test\ModernWpf.WinUI.Tests\ProgressBar\ProgressBarApiTests.cs, test\ModernWpf.WinUI.Tests\ProgressBar\ProgressBarInteractionTests.cs, test\ModernWpf.WinUI.Tests\ProgressBar\ProgressBarSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, docs\progressbar-winui3-source-audit.md, docs\stock-progressbar-wpf-fluent-source-audit.md Source-backed WPF port Refreshed against current official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. The custom control retains source property/state/width/template/automation behavior and the current two-example Gallery surface on a distinct WinUIProgressBar route; the stock WPF ProgressBar route remains separately owned. A DPI-aware, two-pixel-cap-inset upper scanline compensates only WPF's three-pixel rounded-edge rasterization and follows live Fill/width/opacity/transform. Strict exact 130x3 installed-Gallery crops pass Light/Dark at 0.43 under a 2.0 gate with zero size tolerance. WPF substitutions remain documented for callbacks, DPI rounding, early clip clamping, the unused Normal state, storyboards/transforms, track resource lookup, and the focused raster adapter.
ProgressRing controls\dev\ProgressRing\ProgressRing.cpp, controls\dev\ProgressRing\ProgressRing.h, controls\dev\ProgressRing\ProgressRing.xaml, controls\dev\ProgressRing\ProgressRing.idl, controls\dev\ProgressRing\ProgressRingAutomationPeer.cpp, controls\dev\ProgressRing\AnimatedVisuals\ProgressRingDeterminate.cpp, controls\dev\ProgressRing\AnimatedVisuals\ProgressRingIndeterminate.cpp, controls\dev\ProgressRing\ProgressRing_themeresources.xaml, controls\dev\Generated\ProgressRing.properties.cpp, controls\dev\Generated\ProgressRingTemplateSettings.properties.cpp, controls\dev\ProgressRing\APITests\ProgressRingTests.cs, controls\dev\ProgressRing\InteractionTests\ProgressRingTests.cs, WinUIGallery\Samples\ProgressRing\ProgressRingPage.xaml, WinUIGallery\Samples\ProgressRing\ProgressRingPage.xaml.cs, WinUIGallery\Samples\ProgressRing\DeterminateProgressRing.txt, WinUIGallery\Samples\ProgressRing\IndeterminateProgressRing.txt ModernWpf.Controls\ProgressRing\ProgressRing.cs, ModernWpf.Controls\ProgressRing\ProgressRing.xaml, ModernWpf.Controls\ProgressRing\ProgressRingAutomationPeer.cs, ModernWpf.Controls\ProgressRing\ProgressRingIndicator.cs, ModernWpf.Controls\ProgressRing\ProgressRingTemplateSettings.cs, ModernWpf.Gallery\Pages\StatusInfoSampleFactory.cs, ModernWpf.Gallery\Testing\GalleryDiagnostics.cs, test\ModernWpf.WinUI.Tests\ProgressRing\ProgressRingApiTests.cs, test\ModernWpf.WinUI.Tests\ProgressRing\ProgressRingInteractionTests.cs, test\ModernWpf.WinUI.Tests\ProgressRing\ProgressRingSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, docs\progressring-winui3-source-audit.md Source-backed WPF port Refreshed against current official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; all substantive product blobs remain byte-current. The WPF arc derives radius/stroke from the generated 32x32 Lottie geometry (8px ellipse, 1.5px stroke, 1.77 scale), while current states, range behavior, theme resources, and ProgressBar/RangeValue accessibility stay pinned. Current two-example Gallery behavior/snippets match through a documented host-Border background substitute. Deterministic 65% determinate comparisons require exact 60x60 size, a 1.0 delta gate, and zero size tolerance; Light passes 0.64, Dark 0.63. WPF substitutions remain documented for AnimatedVisualPlayer, custom animated sources, brush callbacks, and AccessibilityView.
SplitButton / ToggleSplitButton controls\dev\SplitButton\SplitButton.cpp, controls\dev\SplitButton\SplitButton.h, controls\dev\SplitButton\SplitButton.idl, controls\dev\SplitButton\SplitButton.xaml, controls\dev\SplitButton\SplitButton_themeresources.xaml, controls\dev\SplitButton\SplitButtonAutomationPeer.cpp, controls\dev\SplitButton\ToggleSplitButton.cpp, controls\dev\SplitButton\ToggleSplitButtonAutomationPeer.cpp, controls\dev\Generated\SplitButton.properties.cpp, controls\dev\Generated\ToggleSplitButton.properties.cpp, controls\dev\SplitButton\APITests\SplitButtonTests.cs, controls\dev\SplitButton\InteractionTests\SplitButtonTests.cs, WinUIGallery\Samples\SplitButton\SplitButtonPage.xaml, WinUIGallery\Samples\SplitButton\SplitButtonPage.xaml.cs, WinUIGallery\Samples\SplitButton\SplitButtonColorPicker.txt, WinUIGallery\Samples\SplitButton\SplitButtonText.txt, WinUIGallery\Samples\ToggleSplitButton\ToggleSplitButtonPage.xaml, WinUIGallery\Samples\ToggleSplitButton\ToggleSplitButtonPage.xaml.cs, WinUIGallery\Samples\ToggleSplitButton\ToggleSplitButtonBulletList.txt ModernWpf.Controls\SplitButton\SplitButton.cs, ModernWpf.Controls\SplitButton\ToggleSplitButton.cs, ModernWpf.Controls\SplitButton\SplitButton.xaml, ModernWpf.Controls\SplitButton\SplitButtonAutomationPeer.cs, ModernWpf.Controls\SplitButton\ToggleSplitButtonAutomationPeer.cs, ModernWpf.Controls\CommandBar\CommandBar.xaml, ModernWpf.Gallery\Pages\BasicInputSampleFactory.cs, ModernWpf\ThemeResources\Light.xaml, ModernWpf\ThemeResources\Dark.xaml, ModernWpf\ThemeResources\HighContrast.xaml, test\ModernWpf.WinUI.Tests\SplitButton\SplitButtonApiTests.cs, test\ModernWpf.WinUI.Tests\SplitButton\SplitButtonInteractionTests.cs, test\ModernWpf.WinUI.Tests\SplitButton\SplitButtonSourceAuditTests.cs, test\ModernWpf.Gallery.Tests\GalleryAutomationHookTests.cs, test\ModernWpf.Gallery.Tests\WpfGallerySourceShapeTests.cs, tools\visual-checks\Run-GalleryVisualChecks.ps1, docs\splitbutton-winui3-source-audit.md Source-backed WPF port Refreshed against current product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; every substantive product blob remains byte-current. ModernWpf follows source flyout revokers/show options, keyboard/command/toggle ordering, touch/key and checked states, split-border resources/geometry, and SplitButton Invoke versus ToggleSplitButton Toggle accessibility. The current two-plus-one Gallery surface is pinned, including WPF's native RichTextBox list model and correct unchecked list removal. Fresh exact 71x32 SplitButton crops pass Light 0.46 / Dark 0.37 under 1.0; exact 78x33 ToggleSplitButton crops pass Light 1.62 / Dark 0.98 under 2.0; both enforce zero size tolerance and independently prove their secondary flyouts. WPF substitutions remain documented for GridEx, animated-icon fallback, AccessibilityView, GamepadA, CommandTarget, RichTextBox, Grid spacing, and flyout item layout.
CommandBar src\dxaml\xcp\dxaml\lib\CommandBar_Partial.cpp, src\dxaml\xcp\dxaml\lib\CommandBar_Partial.h, src\dxaml\xcp\dxaml\lib\CommandBarOverflowPresenter_Partial.cpp, src\dxaml\xcp\tools\XCPTypesAutoGen\Modules\Controls\CommandBar.cs, src\controls\dev\CommonStyles\CommandBar_themeresources.xaml, src\dxaml\test\native\external\controls\commandbar\CommandBarIntegrationTests.cpp, inherited AppBar generated/runtime/automation-peer inputs, current Gallery CommandBar page/code/snippet ModernWpf.Controls\CommandBar\CommandBar.cs, ModernWpf.Controls\CommandBar\CommandBar.xaml, ModernWpf.Controls\CommandBar\CommandBarDynamicOverflow.cs, ModernWpf.Controls\CommandBar\CommandBarAutomationPeer.cs, ModernWpf.Controls\CommandBar\CommandBarTemplateSettings.cs, ModernWpf.Controls\CommandBar\CommandBarOverflowPanel.cs, ModernWpf.Controls\CommandBar\CommandBarOverflowPresenter.cs, ModernWpf.Controls\CommandBar\AppBarElementProperties.cs, ModernWpf.Gallery\Pages\MenusToolbarsSampleFactory.cs, test\ModernWpf.WinUI.Tests\CommandBar\CommandBarApiTests.cs, test\ModernWpf.Gallery.Tests\CommandBarSourceAuditTests.cs, visual checker/recorder, docs\commandbar-winui3-source-audit.md Source-backed WPF port Refreshed against current official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87; classic and perf2026 dictionaries are byte-identical and later bounded runtime history is nonfunctional cleanup. ModernWpf retains source-shaped collections, template settings, visual states, sticky/light-dismiss behavior, grouped dynamic overflow, shadow wrapper, and input-mode routing, and now adds current DynamicOverflowItemsChanging timing/actions, inherited Opening/Opened/Closing/Closed lifecycle plus virtual hooks, and AppBar-compatible Toggle/ExpandCollapse/Window automation patterns and notifications. The Gallery mirrors the unchanged one-example page, snippet, accelerators, output, and dynamic commands. Exact 271x48 resting and 167x32 Settings crops pass Light 1.70 / 2.16 and Dark 2.08 / 2.37 under one 2.5 gate with zero size tolerance; Light/Dark OpenRepeat recordings prove repeated opens. Product tests pass 43/43, focused Gallery tests pass 3/3 on net8/net10, and multi-target builds have zero errors. WPF substitutions remain documented for missing WinUI AppBar base types/role ID, generated command collection APIs, compositor shadow, popup ActualPlacement, and gamepad/remote input services.
CommandBarFlyout Current runtime/IDL/generated/API/interaction/localization inputs under controls\dev\CommandBarFlyout, classic/perf2026 theme dictionaries, AppBar automation peers, commanding integration tests, and current Gallery page/code/displayed/sample snippets ModernWpf.Controls\CommandBarFlyout\CommandBarFlyout.cs, ModernWpf.Controls\CommandBarFlyout\CommandBarFlyoutCommandBar.cs, ModernWpf.Controls\CommandBarFlyout\CommandBarFlyoutCommandBarAutomationPeer.cs, ModernWpf.Controls\CommandBarFlyout\CommandBarFlyoutCommandBarTemplateSettings.cs, ModernWpf.Controls\CommandBarFlyout\CommandBarFlyoutOverflowPanel.cs, ModernWpf.Controls\CommandBarFlyout\CommandBarFlyout.xaml, scoped AppBar peers/properties, Gallery sample factory/tests, product/source tests, visual checker/recorder, docs\commandbarflyout-winui3-source-audit.md Source-backed WPF port Refreshed against current official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. The only later runtime change optimizes inserted/replaced localized control types; ModernWpf's scoped peer flag already gives equivalent constant-time MenuItem identity. Perf2026 removes one redundant toggle overflow alignment setter and matches local shape. This pass closes wide primary overflow: the official 20-primary/5-secondary case produces exact 9/17 child counts with 11 moved commands and a generated separator. AlwaysExpanded collapse rejection and live-inserted MenuItem identity are pinned alongside collection/animation/input/shadow/sizing behavior. Fresh static deltas remain 4.99 / 4.99; exact 229x136 interactions remain 7.05 / 8.18; repeat-open recordings pass. Product tests pass 29/29 and focused Gallery tests 5/5 on net8/net10. WPF substitutions remain for compositor rasterization/backdrop, WinRT menu events, unavailable FlowsTo/FlowsFrom properties, separate popup HWND compensation, and gamepad/remote input services.
AppBarButton / AppBarToggleButton dxaml\xcp\dxaml\lib\AppBarButton_Partial.cpp, dxaml\xcp\dxaml\lib\AppBarToggleButton_Partial.cpp, AppBar automation peers/helpers, dxaml\xcp\dxaml\lib\CommandBar_Partial.cpp, classic/perf2026 AppBar theme dictionaries, native focus/automation/CommandBar tests, WinUIGallery\Samples\AppBarButton\*, WinUIGallery\Samples\AppBarToggleButton\* ModernWpf.Controls\CommandBar\AppBarButton*, ModernWpf.Controls\CommandBar\AppBarToggleButton*, ModernWpf.Controls\CommandBar\ICommandBarElement.cs, ModernWpf.Controls\CommandBar\AppBarElementProperties*, ModernWpf.Controls\CommandBar\CommandBar.cs, AppBar templates/resources, ModernWpf.Gallery\Pages\MenusToolbarsSampleFactory.cs, product/Gallery source tests, visual checker/recorder, docs\appbarbutton-winui3-source-audit.md Source-backed WPF port Refreshed against official product commit de3e767333c2f0717a6a70cb22bd192ced5ad885 and Gallery commit 29f62479d5c046a0b854a5868e5a7cd484572d87. Runtime/classic inputs remain current; perf2026 only replaces zero-duration assignments with equivalent setters. This pass closes the missing current ICommandBarElement.IsInOverflow / DynamicOverflowOrder API and behavior: positive order groups move lowest-first with adjacent separators, order-zero commands then fall back right-to-left, and property changes reflow immediately. Gallery commit 40a22976f78e63d5480afa8b49d5f3f7d5860dc6 corrected the displayed flyout XAML tree; ModernWpf mirrors and guards it. Fresh exact-size resting crops pass Light 4.43 / 4.45 and Dark 4.47 / 4.47; output/checked crops pass 5.64 / 2.37 and 6.61 / 2.51. Fresh recordings prove You clicked: Button1 and Off-to-On. Product/source tests pass 41/41 and focused Gallery tests pass 2/2 on net8/net10. Residual pixels remain confined to renderer-specific symbol/label rasterization; documented WPF substitutions remain for cascading menus, platform input services, and WinRT focus/automation details.
AppBarSeparator / AppBarElementContainer dxaml\xcp\dxaml\lib\AppBarSeparator_Partial.cpp, dxaml\xcp\dxaml\lib\AppBarElementContainer_Partial.cpp, dxaml\xcp\dxaml\lib\CommandBar_Partial.cpp, generated AppBar type metadata, controls\dev\CommonStyles\AppBarSeparator_themeresources.xaml, WinUIGallery\Samples\AppBarSeparator\* ModernWpf.Controls\CommandBar\AppBarSeparator*, ModernWpf.Controls\CommandBar\AppBarElementContainer*, ModernWpf.Controls\CommandBar\ICommandBarElement.cs, ModernWpf.Controls\CommandBar\AppBarElementProperties*, ModernWpf.Controls\CommandBar\CommandBar.cs, theme resources, product/Gallery source tests, visual checker/recorder, docs\appbarbutton-winui3-source-audit.md Source-backed WPF port Refreshed against the same current product/Gallery authority. AppBarElementContainer retains its content-only template and computed overflow state; both types now own the shared public DynamicOverflowOrder dependency property and current interface surface. Grouped-overflow regressions cover all four element owners, live order changes, whole positive groups, adjacent separators, and order-zero fallback. AppBarSeparator remains value-for-value current at 2,8,2,8 primary padding, 0,4,0,4 overflow margin, 1px stroke/overflow height, 0.5 radius, DividerStroke Light/Dark, and the High Contrast system alias. Fresh exact 334x48 crops pass Light 0.61 and Dark 0.52 under the strict 1.0 gate; Light/Dark recordings supply stable static proof alongside the button/toggle interactions.