Repository navigation
Migrate to Uno.Sdk and Uno Platform 7.0 - #317
Open
MartinZikmund wants to merge 9 commits into
Open
MartinZikmund wants to merge 9 commits into
MartinZikmund wants to merge 9 commits into
Conversation
Squashed recreation of CommunityToolkit#305 on top of CommunityToolkit#315. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
Uno.Sdk 7.0.0-dev.51 / Uno.WinUI 7.0.0-dev.1656, which require .NET 10. WinUI 2 (Uno.UI 5.x) stays on .NET 9. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
See novotnyllc/MSBuildSdkExtras#305 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
The versions pinned by Uno.Sdk 7.0.0-dev still reference pre-7.0 Uno assemblies (unoplatform/uno#24297). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
TextBlock has no Background in WinUI, and Uno 7 removed it for parity. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
Uno 7 supports RichTextBlock, so the Uno WinUI 3 heads get the same ColorCode-highlighted source viewer as Windows. ColorCode.WinUI is Windows-only, so its formatter is ported onto ColorCode.Core. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
Uno 7 supports RichTextBlock, so the Uno WinUI 3 heads can use the Labs MarkdownTextBlock instead of showing raw Markdown. Opt-in through LabsMarkdownTextBlockVersion until Labs publishes a build with Uno targets. Links now open through the same handler as on Windows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
This was referenced Oct 9, 2026
FontWeights lives in Microsoft.UI.Text on WinUI 3, and the Labs default inline code size (10) is too small next to 14px body text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Recreates #305 (Migrate to Uno.Sdk) on top of #315 (.NET 10 SDK + build tooling), and targets Uno Platform 7.0 for the WinUI 3 flavor.
Based on #315 (this PR targets its branch, so the diff only shows the changes below). Supersedes #305.
What's in here
1. Uno.Sdk migration (from #305)
Squashed recreation of #305's final state onto #315 - see #305 for the full commit history. In short:
Uno.Sdksingle-project gallery heads (ProjectHeads/AllComponents/Uno,ProjectHeads/SingleComponent/Uno) servingwin32,linux,macos,wasm,androidandioson WinUI 3.win32,linuxandmacosare first-class MultiTargets, all served by the single Skia-desktopTFM.-MultiTargets/-WinUIMajorVersion.Uno.UI) and its classic heads.Only conflict against #315 was
global.json.2. Uno Platform 7.0 for WinUI 3
Uno.Sdk7.0.0-dev.51,Uno.WinUI/Uno.WinUI.Lottie7.0.0-dev.1656 (the version that Uno.Sdk pins),Uno.Fonts.Fluent2.9.4 (what Uno.WinUI 7 depends on).net10.0/net11.0only, so WinUI 3 Uno targets move to .NET 10 (net10.0,net10.0-desktop,net10.0-browserwasm,net10.0-android,net10.0-ios).UnoDotNetTargetFrameworkinAvailableTargetFrameworks.propspicksnet10.0for WinUI 3 and keepsnet9.0for WinUI 2.Uno.UI(WinUI 2) stays on Uno 5.x / .NET 9.-maccatalyst.NET10_0_OR_GREATERadded toDefinedConstants.props.net10.0as.NETFramework,Version=v10.0. Its TFM check only reads the first digit (Compatibility with .NET 10 TFMs novotnyllc/MSBuildSdkExtras#305, still open).Library.propsnow setsTargetFrameworkIdentifierfor .NET TFMs.UnoDisableHotDesign/UnoDisableMCPSupport). The versions pinned by Uno.Sdk 7.0.0-dev.51 still reference pre-7.0 Uno assemblies, which causes UNOB0023 at build and a hang at startup (7.0-dev: HotDesign, Toolkit and CommunityToolkit packages reference 'Uno'/'Uno.UI.Toolkit', which 7.0 no longer ships unoplatform/uno#24297). There's a TODO to re-enable them.WinUI.TargetVersion.propsbefore the TFM props.ToolkitDocumentationRenderer.xamlsetsBackgroundonMarkdownTextBlockonly on Windows. On Uno it's aTextBlock, which has noBackgroundin WinUI, and Uno 7 removed it for parity.3. RichTextBlock lights up on Uno 7
Uno 7 ships a full port of WinUI's
RichTextBlock(unoplatform/uno#23731):RichTextBlockwith ColorCode syntax highlighting, like the Windows heads, instead of a plainTextBlock.ColorCode.WinUIis Windows-only, soPolyfills/ColorCode/RichTextBlockFormatter.csports its formatter ontoColorCode.Core. Uno WinUI 2 keeps theTextBlockfallback.MarkdownTextBlockcan now wrap the LabsMarkdownTextBlock(RichTextBlock-based), themed to match the Windows typography. Links open through the same handler as on Windows. This is opt-in throughLabsMarkdownTextBlockVersion, because Labs doesn't ship Uno targets yet (CommunityToolkit/Labs-Windows draft linked below). Until then, Uno shows the plain-text fallback.Validation
Against CommunityToolkit/Windows
main+ #862 + the companion changes (draft PR linked below), on Windows with .NET SDK 10.0.400:GenerateAllSolution.ps1 -MultiTargets win32 -WinUIMajorVersion 3generated all project references. The final SlnGen step can't launch here because no Visual Studio is found.CommunityToolkit.App.Unofornet10.0-desktop: 0 errors. 22 components plus samples compile against Uno 7.0.0-dev.1656.RichTextBlock. A Debug launch takes ~30-60 s before the window appears.Uno.Microsoft.Xaml.Behaviors.Interactivity.WinUIcame from a local pack of feat: Update to Uno Platform 7.0 unoplatform/Uno.XamlBehaviors#36. No Uno 7 build of it is published yet (see below).Consumer (CommunityToolkit/Windows) changes needed
Draft: CommunityToolkit/Windows#880
global.json: .NET SDK10.0.401,MSBuild.Sdk.Extras3.0.44,Uno.Sdk7.0.0-dev.51. Also bump component csprojs that still pinMSBuild.Sdk.Extras/3.0.23.class, DependencyObjectconstraints inDependencyObjectExtensions(DependencyObject is a class in Uno 7), theInsertExpressionKeyFramenullable easing, and aTokenizingTextBoxAutomationPeer.GetChildrenCoreshim until fix(automation): Align ListViewBaseAutomationPeer.GetChildrenCore return type with WinUI unoplatform/uno#25141 ships.Upstream blockers and fixes
Uno.Microsoft.Xaml.Behaviors.Interactivity.WinUIhere and in Windows.ListViewBaseAutomationPeer.GetChildrenCore()returnsList<>instead of WinUI'sIList<>. Fixed in fix(automation): Align ListViewBaseAutomationPeer.GetChildrenCore return type with WinUI unoplatform/uno#25141 (closes [Skia/macOS] TokenizingTextBox crashes with TypeLoadException: incompatible GetChildrenCore return type unoplatform/uno#24552), together with a sync-generator check for this kind of override type mismatch.Follow-ups
Once RichEditBox lands in Uno:
components/RichSuggestBox, currentlyuwp;wasdk): enablewasm;win32;linux;macos;ios;androidon WinUI 3.RichTextBlock-based:
LabsMarkdownTextBlockVersioninApp.Head.Uno.WinUI.Dependencies.props.CommunityToolkit.WinUI.UI.Controls.Markdownto the LabsMarkdownTextBlockas well. That means replacing the 7.xwin:StylewithMarkdownThemes. Labs' UWP package has nouap10.0target.Housekeeping:
Uno.Microsoft.Xaml.Behaviors.Interactivity.WinUIonce Uno.XamlBehaviors#36 is published.TargetFrameworkIdentifierworkaround once MSBuildSdkExtras#305 is fixed.🤖 Generated with Claude Code
https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC