Skip to content

feat!: Drop WPF targets#23261

Open
MartinZikmund wants to merge 1 commit into
unoplatform:masterfrom
MartinZikmund:dev/mazi/wpf-drop
Open

feat!: Drop WPF targets#23261
MartinZikmund wants to merge 1 commit into
unoplatform:masterfrom
MartinZikmund:dev/mazi/wpf-drop

Conversation

@MartinZikmund
Copy link
Copy Markdown
Member

GitHub Issue: closes #23260

PR Type:

✨ Feature

What changed? 🚀

Completely removes the WPF-based Skia desktop runtime (Uno.WinUI.Skia.Wpf / Uno.WinUI.Runtime.Skia.Wpf) and the WPF Islands hosting control (Uno.WinUI.XamlHost.Skia.Wpf). These have been superseded by the native Skia Desktop runtimes (Win32, X11, MacOS, Linux.FrameBuffer).

Removed

  • Uno.WinUI.Skia.Wpf and Uno.WinUI.Runtime.Skia.Wpf NuGet packages and underlying projects (~62 source files).
  • Uno.WinUI.XamlHost.Skia.Wpf (WPF Islands UnoXamlHost) package and project.
  • WPF-targeted sample/template projects: UnoIslands.Skia.Wpf, UnoIslandsSamplesApp.Skia.Wpf, UnoAppWinUI.Skia.WPF, UnoAppWinUILinuxValidation.Skia.WPF, MyAppXamlTrim.Skia.WPF.
  • RuntimeTestPlatforms.SkiaWpf and UnoTarget.SkiaWpf enum values, plus two WPF-specific runtime tests.
  • WPF-specific build properties (NetPreviousWpf, NetCurrentWpf, NetWpfPreviousAndCurrent).
  • WPF-only MSBuild workaround targets (_UnoRemoveTransitiveWPFDependency, _UnoRemoveRuntimeFrameworkInRuntimeConfigurationFiles).
  • WPF Islands CI stages and PowerShell test runner.
  • doc/articles/guides/uno-islands.md (WPF Islands guide) and its asset folder.
  • WPF entries from solution filters, .slnx, Uno.UI.Build.csproj, labeler config, packages.json and PackageDiffIgnore.xml.
  • WPF InternalsVisibleTo declarations across the affected assemblies.

Kept

  • Cross-platform Uno.UI.XamlHost base library and its non-WPF Islands samples (UnoIslands.Skia, UnoIslandsSamplesApp.Skia).
  • doc/articles/wpf-migration.md and doc/articles/wpf-winui-equivalents.md — they help WPF developers adopt Uno/WinUI and remain valuable regardless of Uno's WPF target.
  • _UnoWebView2RemoveWpf MSBuild target — kept defensively because Microsoft.Web.WebView2 still ships a WPF variant that can leak through transitive NuGet references.

Refactors

  • Shared P/Invoke and OpenGL wrapper sources (WindowsRenderingNativeMethods.cs, WinUINativeOpenGLWrapper.cs) that were previously hosted under Uno.UI.Runtime.Skia.Wpf are relocated under src/AddIns/Uno.WinUI.Graphics3DGL/Windows/ so the Graphics3DGL package continues to build for the WinAppSDK target.
  • SamplesApp.Skia.Generic (the canonical Skia desktop sample head) was cleaned of all WPF coupling: removed the WPF FrameworkReference, System.Windows.ThemeInfo assembly attribute, WPF ProjectReference and transitive imports, WPF-specific MainWindowActivated handler, and the .UseWindows(b => b.WpfApplication(...)) call.

Validation

  • ✅ Compile-validated: Uno.UI.Skia, Uno.UI.XamlHost.Skia, Uno.WinUI.Graphics3DGL, Uno.UI.RuntimeTests.Skia, SamplesApp.Skia, SamplesApp.Skia.Generic, UnoIslands.Skia, Uno.UI.Tests, Uno.Sdk all build clean against net10.0.
  • 🧪 Runtime validation: not executed locally; CI is expected to exercise the new Skia desktop sample head.

PR Checklist ✅

Breaking change impact and migration

Apps currently targeting Uno.WinUI.Skia.Wpf must migrate to one of the native Skia Desktop runtimes:

  • Windows: Uno.WinUI.Runtime.Skia.Win32
  • Linux: Uno.WinUI.Runtime.Skia.X11 or Uno.WinUI.Runtime.Skia.Linux.FrameBuffer
  • macOS: Uno.WinUI.Runtime.Skia.MacOS

The recommended path is the unified net*-desktop TFM with the Uno SDK, which automatically pulls in all desktop runtimes.

Apps using UnoXamlHost to embed Uno controls inside an existing WPF application must rehost into a standalone Uno application using one of the native Skia desktop runtimes.

🤖 Generated with Claude Code

Removes the WPF-based Skia desktop runtime (Uno.WinUI.Skia.Wpf /
Uno.WinUI.Runtime.Skia.Wpf) and the WPF Islands hosting control
(Uno.WinUI.XamlHost.Skia.Wpf). These targets have been superseded
by the native Skia Desktop runtimes (Win32, X11, MacOS,
Linux.FrameBuffer).

The cross-platform Uno.UI.XamlHost base library and its non-WPF
Islands samples are preserved, as is migration documentation that
helps WPF developers adopt Uno/WinUI. The _UnoWebView2RemoveWpf
MSBuild target is kept defensively because Microsoft.Web.WebView2
still ships a WPF variant that can leak through transitive NuGet
references.

Shared P/Invoke and OpenGL wrapper sources that were previously
hosted under Uno.UI.Runtime.Skia.Wpf are relocated under
Uno.WinUI.Graphics3DGL/Windows so the Graphics3DGL package
continues to build for the WinAppSDK target.

BREAKING CHANGE: Apps targeting Uno.WinUI.Skia.Wpf must migrate to
one of the native Skia Desktop runtimes (Win32, X11, MacOS or
Linux.FrameBuffer). Apps using UnoXamlHost to embed Uno controls in
WPF must rehost into a standalone Uno application.

closes unoplatform#23260

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 13, 2026 10:52
@MartinZikmund MartinZikmund changed the title feat!: Drop WPF target and WPF Islands support feat!: Drop WPF targets May 13, 2026
@github-actions github-actions Bot added area/solution-templates Categorizes an issue or PR as relevant to the solution template area/skia ✏️ Categorizes an issue or PR as relevant to Skia area/build Categorizes an issue or PR as relevant to build infrastructure area/automation Categorizes an issue or PR as relevant to project automation platform/wpf 🪟 Categorizes an issue or PR as relevant to WPF kind/documentation area/sdk Categorizes an issue or PR as relevant to the Uno.Sdk labels May 13, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes Uno’s WPF-based Skia desktop runtime and WPF Islands support across the repo (projects/packages, build logic, CI, tests, and docs), aligning desktop Skia support around the native runtimes (Win32/X11/MacOS/Linux FrameBuffer). It also relocates the Windows OpenGL/PInvoke helper sources into the Graphics3DGL add-in and updates the canonical Skia desktop sample head to remove WPF coupling.

Changes:

  • Removed WPF runtime/WPF Islands projects and all associated build/CI plumbing, tests, and templates.
  • Updated SamplesApp Skia Generic head and related build artifacts to no longer depend on WPF.
  • Moved Win32 OpenGL wrapper + native method declarations to Uno.WinUI.Graphics3DGL (Windows-only, WinAppSDK path).

Reviewed changes

Copilot reviewed 162 out of 171 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/Uno.UWP/AssemblyInfo.skia.cs Remove WPF/WPF Islands InternalsVisibleTo entries.
src/Uno.UWP/AssemblyInfo.cs Remove WPF InternalsVisibleTo.
src/Uno.UWP/ApplicationModel/DataTransfer/Clipboard.cs Remove WPF-specific clipboard comment.
src/Uno.UI/UI/Xaml/Controls/TextBox/Extensions/IOverlayTextBoxView.skia.cs Generalize comment that previously named Skia.WPF.
src/Uno.UI/AssemblyInfo.skia.cs Remove WPF/WPF-Islands-related InternalsVisibleTo entries.
src/Uno.UI.XamlHost/Properties/AssemblyInfo.skia.cs Remove WPF-related InternalsVisibleTo entries.
src/Uno.UI.XamlHost.Skia.Wpf/UwpUIElementExtensions.cs Delete WPF Islands helper (project removal).
src/Uno.UI.XamlHost.Skia.Wpf/UnoXamlHostWrapperConverter.cs Delete WPF Islands converter (project removal).
src/Uno.UI.XamlHost.Skia.Wpf/UnoXamlHostBase.Layout.cs Delete WPF Islands layout integration (project removal).
src/Uno.UI.XamlHost.Skia.Wpf/UnoXamlHostBase.host.cs Delete WPF Islands host implementation (project removal).
src/Uno.UI.XamlHost.Skia.Wpf/UnoXamlHost.DataBinding.cs Delete WPF Islands data-binding integration (project removal).
src/Uno.UI.XamlHost.Skia.Wpf/UnoXamlHost.cs Delete WPF Islands control (project removal).
src/Uno.UI.XamlHost.Skia.Wpf/Uno.UI.XamlHost.Skia.Wpf.csproj Delete WPF Islands project.
src/Uno.UI.XamlHost.Skia.Wpf/Properties/AssemblyInfo.cs Delete WPF Islands assembly attributes.
src/Uno.UI.TestComparer/Uno.UI.TestComparer.csproj Switch to $(NetPrevious)-windows in place of WPF-specific property.
src/Uno.UI.slnx Remove WPF projects from solution layout.
src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_WebView.cs Remove SkiaWpf from excluded platform list.
src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ContentControl.NativeElement.cs Remove WPF-only runtime tests (native WPF element hosting).
src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs Remove SkiaWpf from excluded platform list.
src/Uno.UI.RuntimeTests/Helpers/RuntimeTestsPlatformHelper.cs Remove SkiaWpf platform detection.
src/Uno.UI.RuntimeTests/Helpers/RuntimeTestPlatforms.cs Remove SkiaWpf flag and adjust SkiaDesktop composite.
src/Uno.UI.RuntimeTests/Helpers/ConditionalTestHelper.cs Remove SkiaWpf conditional logic (now missing FrameBuffer handling—see review comment).
src/Uno.UI.Runtime.Skia/AssemblyInfo.cs Remove WPF InternalsVisibleTo.
src/Uno.UI.Runtime.Skia.Wpf/Uno.UI.Runtime.Skia.Wpf.csproj Delete WPF runtime project.
src/Uno.UI.Runtime.Skia.Wpf/UI/Xaml/Window/WpfWindowWrapper.cs Delete WPF window wrapper implementation.
src/Uno.UI.Runtime.Skia.Wpf/UI/Xaml/Window/UnoWpfWindowHost.cs Delete WPF window host implementation.
src/Uno.UI.Runtime.Skia.Wpf/UI/Xaml/Window/UnoWpfWindow.cs Delete WPF window implementation.
src/Uno.UI.Runtime.Skia.Wpf/UI/Xaml/Window/IWpfWindowHost.cs Delete WPF host interface.
src/Uno.UI.Runtime.Skia.Wpf/UI/Xaml/Controls/TextBox/WpfTextViewTextBox.cs Delete WPF overlay textbox control.
src/Uno.UI.Runtime.Skia.Wpf/UI/Windowing/NativeOverlappedPresenter.cs Delete WPF presenter bridge.
src/Uno.UI.Runtime.Skia.Wpf/Rendering/WpfRendererProvider.cs Delete WPF renderer provider.
src/Uno.UI.Runtime.Skia.Wpf/Rendering/SoftwareWpfRenderer.cs Delete WPF software renderer.
src/Uno.UI.Runtime.Skia.Wpf/Rendering/RenderSurfaceType.cs Delete WPF render-surface enum.
src/Uno.UI.Runtime.Skia.Wpf/Rendering/IWpfRenderer.cs Delete WPF renderer interface.
src/Uno.UI.Runtime.Skia.Wpf/Properties/AssemblyInfo.cs Delete WPF runtime assembly attributes and InternalsVisibleTo.
src/Uno.UI.Runtime.Skia.Wpf/Input/WpfKeyboardInputSource.cs Delete WPF keyboard input source.
src/Uno.UI.Runtime.Skia.Wpf/Input/MouseModifierKeys.cs Delete WPF mouse modifier constants.
src/Uno.UI.Runtime.Skia.Wpf/Input/FrameIdProvider.cs Delete WPF frame-id helper.
src/Uno.UI.Runtime.Skia.Wpf/Hosting/WpfHost.cs Delete WPF host entrypoint.
src/Uno.UI.Runtime.Skia.Wpf/Hosting/IWpfXamlRootHost.cs Delete WPF XamlRoot host interface.
src/Uno.UI.Runtime.Skia.Wpf/Hosting/IWpfApplicationHost.cs Delete WPF application host interface.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfNativeWebViewProvider.cs Delete WPF WebView provider.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfNativeElementHostingExtension.helper.cs Delete WPF native element hosting sample helper.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfNativeElementHostingExtension.cs Delete WPF native element hosting extension.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfExtensionsRegistrar.cs Delete WPF extensibility registration.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfDisplayInformationExtension.cs Delete WPF display information extension.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfApplicationViewExtension.cs Delete WPF application view extension.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/UI/Xaml/Controls/WpfTextBoxView.cs Delete WPF overlay textbox view plumbing.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/UI/Xaml/Controls/TextTextBoxView.cs Delete WPF textbox view implementation.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/UI/Xaml/Controls/TextBoxViewExtension.cs Delete WPF textbox view extension wrapper.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/UI/Xaml/Controls/PasswordTextBoxView.cs Delete WPF password view implementation.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/UI/Xaml/Controls/NativeWindowFactoryExtension.cs Delete WPF window factory extension.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/System/Profile/AnalyticsInfoExtension.cs Delete WPF analytics info extension.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/Storage/Pickers/PickerHelpers.cs Delete WPF picker helpers.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/Storage/Pickers/FolderPickerExtension.cs Delete WPF folder picker extension.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/Storage/Pickers/FileSavePickerExtension.cs Delete WPF save picker extension.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/Storage/Pickers/FileOpenPickerExtension.cs Delete WPF open picker extension.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/Networking/Connectivity/WindowsConnectionProfileExtension.cs Delete WPF connectivity extension.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/Helpers/Theming/WpfSystemThemeHelperExtension.cs Delete WPF system theme helper.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/CursorExtensions.cs Delete WPF cursor conversion helpers.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/ApplicationModel/DataTransfer/ClipboardNativeFunctions.cs Delete WPF clipboard native hooks.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/ApplicationModel/DataTransfer/ClipboardExtensions.cs Delete WPF clipboard extension implementation.
src/Uno.UI.Runtime.Skia.Wpf/Extensions/ApplicationModel/Core/CoreApplicationExtension.cs Delete WPF CoreApplication extension.
src/Uno.UI.Runtime.Skia.Wpf/Constants/Win32Messages.cs Delete WPF-specific Win32 constants.
src/Uno.UI.Runtime.Skia.Wpf/buildTransitive/Uno.WinUI.Runtime.Skia.Wpf.targets Delete WPF build-transitive targets.
src/Uno.UI.Runtime.Skia.Wpf/buildTransitive/Uno.WinUI.Runtime.Skia.Wpf.props Delete WPF build-transitive props.
src/Uno.UI.Runtime.Skia.Wpf/Builder/WpfHostBuilder.cs Delete WPF host builder integration.
src/Uno.UI.Runtime.Skia.Wpf/Builder/IWindowsSkiaHostBuilder.cs Delete WPF host builder interface.
src/Uno.UI.Runtime.Skia.Wpf/Builder/HostBuilder.cs Delete WPF-specific UseWindows()/WpfApplication() builder surface.
src/Uno.UI.RemoteControl/HotReload/MetadataUpdater/HotReloadAgent.cs Remove WPF-specific wording in exception comment.
src/Uno.UI.RemoteControl/HotReload/MetadataUpdater/ElementUpdaterAgent.cs Remove WPF-specific wording in exception comment.
src/Uno.UI.Dispatching/AssemblyInfo.cs Remove WPF-related InternalsVisibleTo.
src/Uno.UI.Composition/AssemblyInfo.skia.cs Remove WPF-related InternalsVisibleTo.
src/Uno.UI.Composition/AssemblyInfo.cs Remove WPF-related InternalsVisibleTo.
src/Uno.UI-Skia-only.slnf Remove WPF projects from Skia-only solution filter.
src/Uno.Sdk/UnoTarget.cs Remove legacy SkiaWpf target constant.
src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs Remove WPF-specific runtime inference (but leaves unused TargetRuntime assignments—see review comment).
src/Uno.Sdk/targets/Uno.SingleProject.Desktop.targets Remove WPF transitive dependency workaround targets.
src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Legacy.targets Remove implicit package refs for Skia.WPF heads.
src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets Remove WPF runtime implicit reference and RDP HW accel option.
src/Uno.Sdk/packages.json Remove WPF runtime package from SDK manifest.
src/Uno.Foundation/AssemblyInfo.cs Remove WPF InternalsVisibleTo.
src/Uno.Foundation.Logging/AssemblyInfo.cs Remove WPF InternalsVisibleTo.
src/SolutionTemplate/UnoAppWinUILinuxValidation/UnoAppWinUILinuxValidation.Skia.WPF/Wpf/MainWindow.xaml.cs Delete WPF template head code-behind.
src/SolutionTemplate/UnoAppWinUILinuxValidation/UnoAppWinUILinuxValidation.Skia.WPF/Wpf/MainWindow.xaml Delete WPF template head XAML.
src/SolutionTemplate/UnoAppWinUILinuxValidation/UnoAppWinUILinuxValidation.Skia.WPF/Wpf/App.xaml.cs Delete WPF template head App code-behind.
src/SolutionTemplate/UnoAppWinUILinuxValidation/UnoAppWinUILinuxValidation.Skia.WPF/Wpf/App.xaml Delete WPF template head App XAML.
src/SolutionTemplate/UnoAppWinUILinuxValidation/UnoAppWinUILinuxValidation.Skia.WPF/app.manifest Delete WPF template head manifest.
src/SolutionTemplate/UnoAppWinUI/UnoAppWinUI.Skia.WPF/Wpf/MainWindow.xaml.cs Delete WPF template head code-behind.
src/SolutionTemplate/UnoAppWinUI/UnoAppWinUI.Skia.WPF/Wpf/MainWindow.xaml Delete WPF template head XAML.
src/SolutionTemplate/UnoAppWinUI/UnoAppWinUI.Skia.WPF/Wpf/App.xaml.cs Delete WPF template head App code-behind.
src/SolutionTemplate/UnoAppWinUI/UnoAppWinUI.Skia.WPF/Wpf/App.xaml Delete WPF template head App XAML.
src/SolutionTemplate/UnoAppWinUI/UnoAppWinUI.Skia.WPF/UnoAppWinUI.Skia.WPF.csproj Delete WPF template head project.
src/SolutionTemplate/UnoAppWinUI/UnoAppWinUI.Skia.WPF/app.manifest Delete WPF template head manifest.
src/SolutionTemplate/MyAppXamlTrim/UnoSolutionTemplate.netcore.csproj Remove WPF template artifacts from packaging.
src/SolutionTemplate/MyAppXamlTrim/MyAppXamlTrim.Skia.WPF/MyAppXamlTrim.Skia.WPF.csproj Delete WPF trim template project.
src/SolutionTemplate/MyAppXamlTrim/MyAppXamlTrim.Skia.WPF/MainWindow.xaml.cs Delete WPF trim template window code-behind.
src/SolutionTemplate/MyAppXamlTrim/MyAppXamlTrim.Skia.WPF/MainWindow.xaml Delete WPF trim template window XAML.
src/SolutionTemplate/MyAppXamlTrim/MyAppXamlTrim.Skia.WPF/App.xaml.cs Delete WPF trim template app code-behind.
src/SolutionTemplate/MyAppXamlTrim/MyAppXamlTrim.Skia.WPF/App.xaml Delete WPF trim template app XAML.
src/SolutionTemplate/MyAppXamlTrim/MyAppXamlTrim.Skia.WPF/app.manifest Delete WPF trim template manifest.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/UnoIslandsSamplesApp.Skia.Wpf.csproj Delete WPF Islands sample head project.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/Properties/Settings.settings Delete WPF sample settings file.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/Properties/Settings.Designer.cs Delete WPF sample generated settings code.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/Properties/Resources.resx Delete WPF sample resources.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/Properties/Resources.Designer.cs Delete WPF sample generated resources code.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/Properties/launchSettings.json Delete WPF sample launch settings.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/Properties/AssemblyInfo.cs Delete WPF sample assembly info.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/MainWindow.xaml.cs Delete WPF sample window code-behind.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/MainWindow.xaml Delete WPF sample window XAML.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/Assets/SharedAssets.md Delete WPF sample asset doc.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/App.xaml.cs Delete WPF sample app code-behind.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/App.xaml Delete WPF sample app XAML.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/app.manifest Delete WPF sample manifest.
src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/App.config Delete WPF sample config.
src/SamplesApp/UnoIslands.WinForms/UnoIslands.WinForms.csproj Switch to $(NetPrevious)-windows in place of WPF-specific property.
src/SamplesApp/UnoIslands.Skia.Wpf/UnoIslands.Skia.Wpf.csproj Delete WPF Islands sample project.
src/SamplesApp/UnoIslands.Skia.Wpf/Properties/Settings.settings Delete WPF sample settings file.
src/SamplesApp/UnoIslands.Skia.Wpf/Properties/Settings.Designer.cs Delete WPF sample generated settings code.
src/SamplesApp/UnoIslands.Skia.Wpf/Properties/Resources.resx Delete WPF sample resources.
src/SamplesApp/UnoIslands.Skia.Wpf/Properties/Resources.Designer.cs Delete WPF sample generated resources code.
src/SamplesApp/UnoIslands.Skia.Wpf/Properties/launchSettings.json Delete WPF sample launch settings.
src/SamplesApp/UnoIslands.Skia.Wpf/Properties/AssemblyInfo.cs Delete WPF sample assembly info.
src/SamplesApp/UnoIslands.Skia.Wpf/PersonViewModel.cs Delete WPF sample view model.
src/SamplesApp/UnoIslands.Skia.Wpf/MainWindowViewModel.cs Delete WPF sample view model.
src/SamplesApp/UnoIslands.Skia.Wpf/MainWindow.xaml.cs Delete WPF sample window code-behind.
src/SamplesApp/UnoIslands.Skia.Wpf/MainWindow.xaml Delete WPF sample window XAML.
src/SamplesApp/UnoIslands.Skia.Wpf/App.xaml.cs Delete WPF sample app code-behind.
src/SamplesApp/UnoIslands.Skia.Wpf/App.xaml Delete WPF sample app XAML.
src/SamplesApp/UnoIslands.Skia.Wpf/app.manifest Delete WPF sample manifest.
src/SamplesApp/UnoIslands.Skia.Wpf/App.config Delete WPF sample config.
src/SamplesApp/SamplesApp.Skia/SamplesApp.Skia.csproj Remove WPF transitive-dependency workaround target.
src/SamplesApp/SamplesApp.Skia.Generic/SamplesApp.Skia.Generic.csproj Remove WPF framework refs/imports and adjust WebView2 alias.
src/SamplesApp/SamplesApp.Skia.Generic/Program.cs Remove WPF-specific host setup and .UseWindows() call.
src/SamplesApp/SamplesApp.Skia.Generic/app.manifest Rename manifest assembly identity from WPF to Generic head.
src/AddIns/Uno.WinUI.Graphics3DGL/Windows/WinUINativeOpenGLWrapper.cs Remove WPF-conditional implementation; keep WinUI wrapper only.
src/AddIns/Uno.WinUI.Graphics3DGL/Windows/WindowsRenderingNativeMethods.cs Move to Windows-only namespace and remove WPF-conditional namespace.
src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj Compile WinAppSDK Windows sources from local Windows/ folder.
doc/articles/uno-publishing-desktop.md Generalize publishing note (no longer WPF-specific).
doc/articles/uno-development/creating-runtime-tests.md Remove SkiaWpf from documented runtime-test platforms.
doc/articles/toc.yml Remove WPF Islands guide link from TOC.
Directory.Build.props Remove WPF-specific TFM properties.
build/Uno.UI.Build.csproj Remove WPF-related nuspec packing/diff entries.
build/test-scripts/run-windows-islands-skia-runtime-tests.ps1 Delete WPF Islands runtime test runner script.
build/test-scripts/run-netcore-mobile-template-tests.ps1 Remove WPF template build configurations.
build/PackageDiffIgnore.xml Remove WPF-specific API diff ignore entries.
build/nuget/Uno.WinUI.XamlHost.Skia.Wpf.nuspec Delete WPF Islands nuspec.
build/nuget/Uno.WinUI.Skia.Wpf.nuspec Delete WPF Skia nuspec.
build/nuget/Uno.WinUI.nuspec Remove WPF-specific references comment block.
build/filters/Uno.UI-packages-skia.slnf Remove WPF projects from Skia package filter.
build/filters/Uno.UI-packages-all.slnf Remove WPF projects from all-packages filter.
build/ci/tests/.azure-devops-tests-windows-skia.yml Remove WPF Islands runtime test job.
build/ci/tests/.azure-devops-tests-skia-build.yml Remove WPF Islands build + artifacts publishing steps.
build/ci/build/.azure-devops-build-native.yml Remove Windows-targeting enablement comment/variable.
.github/labeler.yml Remove WPF paths and label from labeler configuration.
Files not reviewed (4)
  • src/SamplesApp/UnoIslands.Skia.Wpf/Properties/Resources.Designer.cs: Language not supported
  • src/SamplesApp/UnoIslands.Skia.Wpf/Properties/Settings.Designer.cs: Language not supported
  • src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/Properties/Resources.Designer.cs: Language not supported
  • src/SamplesApp/UnoIslandsSamplesApp.Skia.Wpf/Properties/Settings.Designer.cs: Language not supported
Comments suppressed due to low confidence (2)

src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs:164

  • TargetRuntime is assigned in the new TFM-parsing logic but is never read anywhere in this task (and the private field is otherwise unused). With warnings-as-errors enabled, this is likely to produce a compiler warning (field assigned but value never used). Consider removing the TargetRuntime field and its assignments entirely, or reintroduce its usage where runtime-specific behavior is required.
    src/Uno.UI.RuntimeTests/Helpers/ConditionalTestHelper.cs:67
  • RuntimeTestPlatforms includes SkiaFrameBuffer, but IsCurrentTarget doesn't handle it. Since GetCurrentPlatform() iterates over all single-flag values, this will hit the default case and throw on FrameBuffer runs. Add a RuntimeTestPlatforms.SkiaFrameBuffer case (matching the implementation in RuntimeTestsPlatformHelper) to avoid breaking conditional test evaluation on that platform.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@unodevops
Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23261/wasm-skia-net9/index.html

@nventive-devops
Copy link
Copy Markdown
Contributor

The build 212332 found UI Test snapshots differences: skia-linux-screenshots: 61, skia-windows-screenshots: 89, wasm: 9

Details
  • skia-linux-screenshots: 61 changed over 2346

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ColorPickerSample.png-dark
    • ColorPickerSample.png
    • DropDownButtonPage.png-dark
    • Focus_FocusVisual_Properties.png-dark
    • DisplayInformation.png-dark
    • Examples.png-dark
    • Examples.png
    • ExpanderColorValidationPage.png-dark
    • ExpanderColorValidationPage.png
    • ImageBrush_Stretch.png-dark
    • ImageBrush_Stretch.png
    • ImageIconPage.png-dark
    • ImageIconPage.png
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • CalendarView_Theming.png-dark
    • ClipboardTests.png-dark
    • ElementLevelTheme.png-dark
    • ElementLevelTheme.png
    • Gamepad_CurrentReading.png-dark
  • skia-windows-screenshots: 89 changed over 2346

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Buttons.png-dark
    • ContentPresenter_NativeEmbedding_ZIndex.png
    • GestureEventsCommons.png-dark
    • GestureEventsCommons.png
    • HitTest_Clipping.png-dark
    • HitTest_Clipping.png
    • HitTest_Control.png-dark
    • HitTest_Control.png
    • ElementLevelTheme.png-dark
    • ElementLevelTheme.png
    • Examples.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • HoldingTests.png-dark
    • HoldingTests.png
    • Image_Stretch_Alignment_Bigger.png-dark
    • Image_Stretch_Alignment_Bigger.png
    • ButtonClippingTestsControl.png
    • Capture.png-dark
    • CalendarView_Theming.png-dark
  • wasm: 9 changed over 1076

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • UITests.Shared.Windows_UI_Xaml_Controls.ImageTests.Image_Stretch_Algmnt_Inf_Vertical
    • initial_state
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ListView.ListView_IsSelected
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewSelectedItems
    • UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_Minimal
    • MUXControlsTestApp.SwipeControlPage2
    • UITests.Shared.Microsoft_UI_Xaml_Controls.ExpanderTests.WinUIExpanderPage
    • SamplesApp.Microsoft_UI_Xaml_Controls.WebView2Tests.WebView2_EnableDevTools
    • UITests.Microsoft_UI_Xaml_Controls.WebView2Tests.WebView2_NavigationProperties

@unodevops
Copy link
Copy Markdown
Contributor

⚠️⚠️ The build 212332 has failed on Uno.UI - CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/automation Categorizes an issue or PR as relevant to project automation area/build Categorizes an issue or PR as relevant to build infrastructure area/sdk Categorizes an issue or PR as relevant to the Uno.Sdk area/skia ✏️ Categorizes an issue or PR as relevant to Skia area/solution-templates Categorizes an issue or PR as relevant to the solution template kind/documentation platform/wpf 🪟 Categorizes an issue or PR as relevant to WPF

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Drop support for the WPF targets

4 participants