From c7efbfa1279d9f7ee72775f2bb3e6dfb5229e67a Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Fri, 9 Oct 2026 11:54:47 +0200 Subject: [PATCH 1/5] chore: adopt Uno 7 tooling and SDK pins Points the tooling submodule at the Uno 7 branch and updates global.json (.NET SDK 10.0.401, Uno.Sdk 7.0.0-dev.51, MSBuild.Sdk.Extras 3.0.44). Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC --- global.json | 5 +++-- tooling | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/global.json b/global.json index 338ca727d..7f21440ea 100644 --- a/global.json +++ b/global.json @@ -1,10 +1,11 @@ { "sdk": { - "version": "9.0.310", + "version": "10.0.401", "rollForward": "latestFeature" }, "msbuild-sdks": { - "MSBuild.Sdk.Extras":"3.0.23" + "MSBuild.Sdk.Extras":"3.0.44", + "Uno.Sdk": "7.0.0-dev.51" } } diff --git a/tooling b/tooling index 5ebeaabec..0686dbc6a 160000 --- a/tooling +++ b/tooling @@ -1 +1 @@ -Subproject commit 5ebeaabeccc7a1d157ab40b784686a8758d15766 +Subproject commit 0686dbc6ae8ba2faca9ff52ac46488410cd00daf From 7bb22c2b1c063eacb44753c507346df8728f1059 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Fri, 9 Oct 2026 11:54:47 +0200 Subject: [PATCH 2/5] feat(MarkdownTextBlock): multi-target Uno Platform 7 heads Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC --- .../CommunityToolkit.WinUI.Controls.MarkdownTextBlock.csproj | 4 ++-- components/MarkdownTextBlock/src/MultiTarget.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/components/MarkdownTextBlock/src/CommunityToolkit.WinUI.Controls.MarkdownTextBlock.csproj b/components/MarkdownTextBlock/src/CommunityToolkit.WinUI.Controls.MarkdownTextBlock.csproj index f9a01416e..64edb1843 100644 --- a/components/MarkdownTextBlock/src/CommunityToolkit.WinUI.Controls.MarkdownTextBlock.csproj +++ b/components/MarkdownTextBlock/src/CommunityToolkit.WinUI.Controls.MarkdownTextBlock.csproj @@ -25,7 +25,7 @@ - + @@ -33,7 +33,7 @@ - + diff --git a/components/MarkdownTextBlock/src/MultiTarget.props b/components/MarkdownTextBlock/src/MultiTarget.props index 18f6c7c98..81a497fd2 100644 --- a/components/MarkdownTextBlock/src/MultiTarget.props +++ b/components/MarkdownTextBlock/src/MultiTarget.props @@ -4,6 +4,6 @@ MultiTarget is a custom property that indicates which target a project is designed to be built for / run on. Used to create project references, generate solution files, enable/disable TargetFrameworks, and build nuget packages. --> - uwp;wasdk; + uwp;wasdk;wasm;win32;linux;macos;ios;android; From fe033a8baecd3f044838aac452d34819c318e394 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Fri, 9 Oct 2026 11:57:24 +0200 Subject: [PATCH 3/5] fix(MarkdownTextBlock): annotate GetPositionAtOffset result as nullable Uno annotates TextPointer.GetPositionAtOffset as nullable, which fails the build with warnings as errors. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC --- components/MarkdownTextBlock/src/Extensions.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/MarkdownTextBlock/src/Extensions.cs b/components/MarkdownTextBlock/src/Extensions.cs index 8c682fe2d..4eb5203b4 100644 --- a/components/MarkdownTextBlock/src/Extensions.cs +++ b/components/MarkdownTextBlock/src/Extensions.cs @@ -365,7 +365,7 @@ public static string ToAlphabetical(this int index) else { // Try to find the next insertion position by moving one symbol forward - TextPointer next = position.GetPositionAtOffset(1, logicalDirection); + TextPointer? next = position.GetPositionAtOffset(1, logicalDirection); // If there is no next position, return null if (next == null) { @@ -384,7 +384,7 @@ public static bool IsAtInsertionPosition(this TextPointer position, LogicalDirec // Get the character rect of the current position Rect currentRect = position.GetCharacterRect(logicalDirection); // Try to get the next position by moving one symbol forward - TextPointer next = position.GetPositionAtOffset(1, logicalDirection); + TextPointer? next = position.GetPositionAtOffset(1, logicalDirection); // If there is no next position, return false if (next == null) { From 203e32574ce6df4dda634eb1c50a1fb649b45b7f Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Fri, 9 Oct 2026 12:28:01 +0200 Subject: [PATCH 4/5] fix(MarkdownTextBlock): use RenderTransform on Uno where Transform3D is a stub Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC --- .../MarkdownTextBlock/src/TextElements/MyInlineCode.cs | 5 +++++ .../MarkdownTextBlock/src/TextElements/MyTaskListCheckBox.cs | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/components/MarkdownTextBlock/src/TextElements/MyInlineCode.cs b/components/MarkdownTextBlock/src/TextElements/MyInlineCode.cs index 090f1a21d..8edffe312 100644 --- a/components/MarkdownTextBlock/src/TextElements/MyInlineCode.cs +++ b/components/MarkdownTextBlock/src/TextElements/MyInlineCode.cs @@ -29,9 +29,14 @@ public MyInlineCode(CodeInline codeInline, MarkdownConfig config) border.BorderThickness = _config.Themes.InlineCodeBorderThickness; border.CornerRadius = _config.Themes.InlineCodeCornerRadius; border.Padding = _config.Themes.InlineCodePadding; +#if HAS_UNO + // UIElement.Transform3D is not implemented on Uno + border.RenderTransform = new TranslateTransform { Y = 4 }; +#else CompositeTransform3D transform = new CompositeTransform3D(); transform.TranslateY = 4; border.Transform3D = transform; +#endif var textBlock = new TextBlock(); textBlock.FontSize = _config.Themes.InlineCodeFontSize; textBlock.Foreground = _config.Themes.InlineCodeForeground; diff --git a/components/MarkdownTextBlock/src/TextElements/MyTaskListCheckBox.cs b/components/MarkdownTextBlock/src/TextElements/MyTaskListCheckBox.cs index afd9d39f2..19ca34adb 100644 --- a/components/MarkdownTextBlock/src/TextElements/MyTaskListCheckBox.cs +++ b/components/MarkdownTextBlock/src/TextElements/MyTaskListCheckBox.cs @@ -15,9 +15,14 @@ public MyTaskListCheckBox(TaskList taskList) { _taskList = taskList; var grid = new Grid(); +#if HAS_UNO + // UIElement.Transform3D is not implemented on Uno + grid.RenderTransform = new TranslateTransform { Y = 2 }; +#else CompositeTransform3D transform = new CompositeTransform3D(); transform.TranslateY = 2; grid.Transform3D = transform; +#endif grid.Width = 16; grid.Height = 16; grid.Margin = new Thickness(2, 0, 2, 0); From b1251bb9e61515a622b789a8649890741f0c703a Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Fri, 9 Oct 2026 12:30:25 +0200 Subject: [PATCH 5/5] chore: bump tooling to latest Uno 7 branch head Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC --- tooling | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tooling b/tooling index 0686dbc6a..843a88ab2 160000 --- a/tooling +++ b/tooling @@ -1 +1 @@ -Subproject commit 0686dbc6ae8ba2faca9ff52ac46488410cd00daf +Subproject commit 843a88ab27f6240dc1f540e981602955122cf3b0