This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can trysigning in orchanging directories.
Access to this page requires authorization. You can trychanging directories.
This article provides a high-level overview about what's new with Windows Presentation Foundation (WPF) in .NET 10. For detailed information, see therelease announcements.Use the release announcements to get an overview of the entire .NET 10 release. The rest of the sections sections highlight some of most the important changes to Windows Forms.
.NET 10 was released in November 2025.
Each release announcement provides detailed information about WPF changes for .NET 10:
Performance was improved by replacing internal data structures with base .NET types, such asReadOnlyCollection<T>. This minimized allocations in UI automation and file dialogs, and speeding up pixel format conversions.
Enhanced performance by optimizing cache operations, array handling, and migrating font collection loader to managed code.
Performance was optimized across font rendering, dynamic resources, input composition, trace logging, regex usage, and XAML parsing.
Various bug fixes have been addressed in .NET 10, to improve the Fluent UI style support in WPF. Fluent UI style support is still in progress.
Fluent styles added more controls, such as:
Fixed the animation forExpander.
Fixed crashes related toHighContrast.
Added missingRecognizesAccessKey for controls.
Right-to-left layout issues have been fixed forMenuItem,Expander,TreeViewItem.
WPF and Windows Forms now use the same clipboard API. Both desktop technologies unify how they interact with the clipboard.
.NET 9 obsoletedBinaryFormatter, which is used in some clipboard operations. These clipboard operations required you to opt in to compatibility package, or work around the operation. To ease the pain of moving away fromBinaryFormatter, .NET 10 is obsoleting certain clipboard methods to indicate that they shouldn't be used. More methods are being added to help JSON serialization with clipboard data, circumventing the need forBinaryFormatter.
Addressed various bug fixes including UI element cursor types, crash issues when bitmap streams are null, build and test step errors, and minor bugs inBitmapMetadata and native dependencies.
Addressed localization issues forScrollViewer andContextMenu.
Over 4,000 unit tests forSystem.Xaml andWindowsBase added.
Enhanced performance by optimizing cache operations, array handling, and migrating font collection loader to managed code.
Moving out of .NET Framework left behind unused Code Access Security (CAS) related attributes and code. Many of these have been removed in the .NET codebase.
OleCmdHelper/ISecureCommand.FontSourceCollection/FontSource.Conducted extensive code cleanups, including syntax standardization and argument clarity, to improve code readability and maintainability. Debugging patterns were modernized and legacy constructs likeArrayList were phased out for maintainability.
Community contributorbstordrup enhanced theMessageBox with more button and result options. For more information, see#9613.
namespace System.Windows{ public enum MessageBoxButton { OK = 0, OKCancel = 1,+ AbortRetryIgnore = 2, YesNoCancel = 3, YesNo = 4,+ RetryCancel = 5,+ CancelTryContinue = 6, } public enum MessageBoxResult { None = 0, OK = 1, Cancel = 2,+ Abort = 3,+ Retry = 4,+ Ignore = 5, Yes = 6, No = 7,+ TryAgain = 10,+ Continue = 11, }}Was this page helpful?
Need help with this topic?
Want to try using Ask Learn to clarify or guide you through this topic?
Was this page helpful?
Want to try using Ask Learn to clarify or guide you through this topic?