Skip to content
CAI
Software that uses CAICheck a score

dotnet/wpf

68.7

Adequate · 5 August 2026

429.2k

lines of production code

C#

primary language

3

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is the Windows Presentation Foundation (WPF) framework, a comprehensive UI and graphics library for building Windows desktop applications. It provides a complete rendering engine with support for 2D/3D graphics, text shaping, and ink input, alongside a robust data binding and animation subsystem. The codebase also implements the XAML/BAML markup compilation pipeline, accessibility (UI Automation) interfaces, and native interop layers for Windows-specific features like printing and file dialogs.

How it got here

2018–2019 — WPF source code and infrastructure expansion

207 changes.

This period focused on populating the WPF codebase with the core implementation of the XAML parsing, markup compilation, and UI control libraries. The work involved adding extensive internal classes for text shaping, ink handling, and accessibility, alongside establishing the build infrastructure and shared utility components required to compile and run WPF applications.

2020–2025 — WPF native graphics and infrastructure expansion

42 changes.

This period focused on integrating the WPF Media Integration Layer (MIL) and graphics engine into the repository, including build infrastructure for native libraries and COM stability wrappers. It also established internal support for document rights management, OLE compound files, and OS version detection, while significantly expanding unit test coverage for WPF core components.

Features

Add 2D manipulation and inertia processing APIs to WPF

The \System.Windows.Input.Manipulations\ namespace is introduced, providing classes for handling 2D user input manipulations and inertia simulation. This includes the \ManipulationProcessor2D\ for tracking gestures, \InertiaProcessor2D\ for simulating physical motion after release, and associated behavior classes (\InertiaTranslationBehavior2D\, \InertiaRotationBehavior2D\, \InertiaExpansionBehavior2D\) that allow developers to configure deceleration, displacement, and rotation parameters. The update also adds supporting types such as \Manipulation2DCompletedEventArgs\ for event data and \DoubleUtil\ for floating-point comparisons.

src/Microsoft.DotNet.Wpf/src/System.Windows.Input.Manipulations/System · high confidence

Add D3DX9 and DirectXMath vector, matrix, and shader implementations

The WpfGfx component now includes new header files implementing the DirectX abstraction layer for both D3DX9 and DirectXMath (XMath). This adds support for 2D, 3D, and 4D vectors, quaternions, and 4x4 matrices, along with shader compilation utilities and math extensions. The changes introduce a factory mechanism that allows the application to select between the legacy D3DX9 API and the modern DirectXMath API at compile time, enabling the rendering subsystem to utilize hardware-accelerated graphics operations through a unified interface.

src/Microsoft.DotNet.Wpf/src/WpfGfx/common/DirectXLayer · high confidence

Add Key, ModifierKeys, and focus-traversal types to WindowsBase

The WindowsBase library now includes the \Key\ and \ModifierKeys\ enumerations, along with their corresponding \TypeConverter\ and \ValueSerializer\ classes (\KeyConverter\, \ModifierKeysConverter\, \KeyValueSerializer\, \ModifierKeysValueSerializer\). These additions enable string-to-enum conversion and XAML serialization for keyboard input values. Additionally, the \KeyInterop\ class is introduced to map Win32 VirtualKeys to the new \Key\ enum, and the \TraversalRequest\ class with \FocusNavigationDirection\ is added to support programmatic focus traversal.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Input · high confidence

Add OS version detection helpers for Windows XP through Windows 10 RS5

A new shared utility, OSVersionHelper, has been introduced to detect the installed Windows version at runtime. This helper exposes boolean properties (e.g., IsOsWindows10RS5OrGreater) that wrap native P/Invoke calls to PresentationNative, allowing the framework to branch behavior based on the specific Windows version (ranging from Windows XP SP2 to Windows 10 RS5). The change also includes an OperatingSystemVersion enumeration to support this detection logic.

src/Microsoft.DotNet.Wpf/src/Shared/System/Windows/Interop · high confidence

Add PixelUnit struct for parsing pixel-based length units

A new internal readonly struct, PixelUnit, has been added to the codebase. This struct provides static methods to parse and convert various pixel-based length units (pixels, inches, centimeters, and points) from string representations. This change introduces a new mechanism for handling unit conversions in the WPF common code.

src/Microsoft.DotNet.Wpf/src/Common/src/MS · medium confidence

Add SpecialBracketCharacters class for XAML parser

A new \SpecialBracketCharacters\ class has been added to the XAML parser to handle bracket characters specified on a Markup Extension property. This class manages start and end bracket characters, validates them against a restricted character set, and provides methods to check for escape sequences and matching brackets.

src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/Xaml/Parser · medium confidence

Add System.Xml.Linq extension helpers for WPF data binding

The PresentationFramework assembly now includes a new internal helper class, SystemXmlLinqExtension, which provides specialized property descriptors for XElement. This enables WPF's data binding engine to correctly handle XElements, including resolving synthetic properties like Elements, Descendants, Attribute, and Element, and identifying non-idempotent properties that create new objects on each access.

src/Microsoft.DotNet.Wpf/src/Extensions/PresentationFramework-SystemXmlLinq · high confidence

Add SystemDrawingExtension helper for WPF-System.Drawing interop

A new internal helper class, SystemDrawingExtension, is introduced to manage conversions between WPF image types and System.Drawing types. This includes methods for retrieving HBITMAP handles, converting BitmapSource to System.Drawing.Bitmap, and handling metafile formats, facilitating the integration of System.Drawing functionality within the WPF framework.

src/Microsoft.DotNet.Wpf/src/Extensions/PresentationFramework-SystemDrawing · high confidence

Add TypeUriConverter for XAML type conversion

A new TypeUriConverter class has been added to the System.Xaml replacements to handle conversions between strings and System.Uri objects within the XAML markup processing pipeline. This provides a dedicated converter for URI-based type conversions in the shared codebase.

src/Microsoft.DotNet.Wpf/src/Shared/System/Windows/Markup/Replacements · high confidence

Add UI Automation client-side provider implementations

Added new internal classes in the UIAutomationClientSideProviders assembly, including Accessible, ClickablePoint, ThemePart, RemoteMemoryBlock, and XSendMessage. These files implement the core logic for wrapping IAccessible, calculating clickable points, retrieving theme part sizes, managing cross-process memory blocks, and handling cross-process message sending for UI Automation providers.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal · high confidence

Add UI Automation peer implementations for WPF elements

The PresentationCore library now includes the core AutomationPeer classes (AutomationPeer, ContentElementAutomationPeer, GenericRootAutomationPeer, UIElement3DAutomationPeer, and UIElementAutomationPeer) which expose UI elements to accessibility tools. These peers provide the necessary interface for screen readers and other assistive technologies to understand and interact with WPF controls, including support for synchronized input patterns and standard automation properties.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Automation/Peers · high confidence

Add UI Automation provider reference assembly

A new reference assembly (UIAutomationProvider.cs) is introduced for the UI Automation provider layer, exposing the public API surface for UIA providers. This includes the AutomationInteropHelper class with methods for raising automation events and properties, as well as a comprehensive set of provider interfaces (such as IGridProvider, IScrollProvider, ITextProvider, and IWindowProvider) that define the contract for UI automation controls. This change enables developers to build or extend UI automation providers using the standard .NET interfaces.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationProvider/ref · high confidence

Add WPF Dispatcher threading infrastructure

The WPF threading model is introduced with the \Dispatcher\ class, which manages the queue of operations for a specific thread. This includes support for \DispatcherOperation\ to represent queued work, \DispatcherPriority\ to define execution order, and \DispatcherObject\ to enforce thread-affinity checks. The update also adds \DispatcherHooks\ for monitoring dispatcher activity, \DispatcherFrame\ for message loop integration, and synchronization context support, enabling developers to schedule and manage UI-thread-bound code execution.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Threading · high confidence

Add WPF build task infrastructure and resource management

The WPF build system now includes the core MSBuild targets and task definitions required to compile XAML markup files. This change introduces the \Microsoft.WinFX.targets\ file, which defines the build pipeline for WPF projects, including targets for compiling XAML into code-behind and managing resources. Additionally, the \SR.cs\ file is added to expose a shared \ResourceManager\ for the build tasks, enabling consistent error and status messaging during the build process. These files provide the foundational build logic for WPF projects.

src/Microsoft.DotNet.Wpf/src/PresentationBuildTasks · high confidence

Add WPF controls and converters to PresentationFramework

The WPF controls library gains a substantial set of new UI components and value converters, including AVElementHelper, AccessText, AddingNewItemEventArgs, AdornedElementPlaceholder, AlternationConverter, BooleanToSelectiveScrollingOrientationConverter, BooleanToVisibilityConverter, Border, BorderGapMaskConverter, Button, Calendar, and CalendarBlackoutDatesCollection. These additions expand the available controls for building user interfaces and handling data binding scenarios.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls · high confidence

Add WPF core infrastructure and annotation storage classes

The WPF framework introduces several new classes to support application lifecycle, design-time support, and annotation storage. The \Application\ class is added to manage application-wide state and events like startup and exit. \DesignerProperties\ provides attached properties to detect if a control is running in a designer. \AccentColorHelper\ is introduced to retrieve the system's accent color. Additionally, the \System.Windows.Annotations.Storage\ namespace is populated with classes (\AnnotationStore\, \XmlStreamStore\, \StoreContentChangedEventArgs\) that enable storing, retrieving, and tracking changes to annotations in XML streams.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows · high confidence

Add WPF interop classes for hosting native windows and ActiveX controls

Added new classes to the \System.Windows.Interop\ namespace to support hosting native Windows and ActiveX controls within WPF applications. This includes \HwndHost\ for embedding unmanaged windows, \ActiveXHost\ for hosting ActiveX controls, and helper classes like \BrowserInteropHelper\ and \WindowInteropHelper\ to facilitate interop between WPF and legacy Windows APIs.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Interop · high confidence

Add WPF navigation framework classes

The WPF navigation framework is introduced with the addition of core classes including \NavigationService\, \NavigationWindow\, and associated event argument types such as \NavigationEventArgs\, \NavigatingCancelEventArgs\, and \NavigationFailedEventArgs\. This includes the \Journal\ class for managing back/forward history, \JournalEntry\ for representing history items, and converters like \JournalEntryListConverter\ to limit the number of entries shown in the UI. These changes enable developers to implement client-side navigation, manage browser history, and handle navigation states within WPF applications.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Navigation · high confidence

Add WPF text formatting and 3D transform internal classes

The PresentationCore library adds several new internal classes to support text formatting and 3D transformations. The \Bidi\ class implements a state machine for bidirectional text resolution, while \CultureMapper\ handles mapping between \CultureInfo\ objects for text formatting. The \DrawingState\ class manages drawing context and baseline guidelines for text lines. Additionally, \GeneralTransform2DTo3DTo2D\ and \GeneralTransform3DTo2DTo3D\ classes provide transform services between 2D and 3D coordinate spaces, and \LineUtil\ and \M3DUtil\ provide utility functions for 3D geometry and matrix operations.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/TextFormatting · high confidence

Add WeakReadOnlyCollection and CollectionChangedEventManager to WindowsBase

The WindowsBase library now includes a new \WeakReadOnlyCollection\<T\>\ class in the \System.Collections.ObjectModel\ namespace, which stores items as weak references to help avoid memory leaks from event handlers. Additionally, a new \CollectionChangedEventManager\ class has been added to the \System.Collections.Specialized\ namespace to manage weak event listeners for the \INotifyCollectionChanged.CollectionChanged\ event, providing a pattern for handling collection changes without retaining strong references.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Collections · high confidence

Add Win32 interop and window management infrastructure to WPF

The WPF runtime now includes a new shared \MS.Win32\ namespace containing core Win32 interop utilities and window management classes. This adds \ExternDll.cs\ for centralized DLL name constants, \HwndSubclass.cs\ for managed window procedure subclassing, \HwndWrapper.cs\ for creating and managing native window handles, \HandleCollector.cs\ for tracking native handle lifetimes, and \NativeMethods\*.cs\ files defining P/Invoke signatures and constants. These components provide the underlying mechanism for WPF to interact with the Windows OS, enabling features like window subclassing, message handling, and native resource management.

src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32 · high confidence

Add Windows interop bindings for user32, winmm, and zlib

Added new interop files in src/Microsoft.DotNet.Wpf/src/Common/src/Interop to expose Windows API functions and constants. This includes the Libraries registry mapping native DLL names (including System.IO.Compression.Native.dll), user32 window and system parameters, winmm audio and multimedia I/O functions (PlaySoundW, mmioOpenW, etc.), and zlib compression functions (Deflate, Inflate, Crc32).

src/Microsoft.DotNet.Wpf/src/Common/src/Interop · high confidence

Add WindowsFormsHostAutomationPeer for UI Automation support

A new WindowsFormsHostAutomationPeer class has been added to the WindowsFormsIntegration assembly. This class implements the UI Automation peer for the WindowsFormsHost control, exposing its identity as a 'Pane' control type and providing the necessary infrastructure for accessibility tools to interact with hosted Windows Forms content.

src/Microsoft.DotNet.Wpf/src/WindowsFormsIntegration/System/Windows/Automation · high confidence

Add XAML infoset object model and reader/writer implementations

The System.Xaml library now includes the core infoset object model and reader/writer implementations. This adds the \XamlNode\ struct and \XamlNodeType\ enum to represent the XAML infoset, alongside settings classes (\XamlReaderSettings\, \XamlObjectWriterSettings\, \XamlTextReaderSettings\, \XamlXmlReaderSettings\) that configure parsing and writing behavior. The diff introduces the \XamlObjectWriter\ and \XamlXmlReader\ classes, which provide the primary mechanisms for writing and reading XAML data, including support for deferred template writing and line information tracking.

src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Xaml/InfosetObjects · high confidence

Add XAML resource strings for exception messages

The System.Xaml library now includes the resource files (ExceptionStringTable.txt, Strings.resx, and win32res.rc) that define the error messages for XAML parsing and object writing exceptions, enabling localized error reporting for developers.

src/Microsoft.DotNet.Wpf/src/System.Xaml/Resources · high confidence

Add XAML type conversion replacements

Introduced new internal TypeConverter implementations for the XAML subsystem, including DateTimeConverter2, DateTimeOffsetConverter2, TypeListConverter, and TypeTypeConverter. These classes provide specific conversion logic for date/time types, type arrays, and single types, bridging the gap between string representations and their corresponding .NET types within the XAML parsing and serialization pipeline.

src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Xaml/Replacements · high confidence

Add XamlContextStack and XamlFrame for XAML context management

The diff introduces two new internal classes, XamlContextStack and XamlFrame, located in the MS.Internal.Xaml.Context namespace. XamlFrame serves as an abstract base class providing depth tracking and previous-frame linking, while XamlContextStack implements a generic stack that manages XAML context frames, supporting push/pop scope operations, frame recycling, and depth management. This change adds new internal infrastructure for managing XAML parsing context, likely to support template context reuse as noted in the Clone method comment.

src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/Xaml/Context · high confidence

Add ZLib native interop layer for System.IO.Compression

Introduced new files (ZLibNative.Windows.cs, ZLibNative.cs) that define the managed wrappers and P/Invoke declarations for the native CLRCompression.dll (ZLib) library. This adds the underlying native binding infrastructure required for Deflate compression, exposing enums for compression levels, strategies, and methods, as well as handle wrappers for the ZLib stream state.

src/Microsoft.DotNet.Wpf/src/Common/src/System/IO · high confidence

Add assembly-level metadata for WPF Ribbon and Windows Forms Integration

New AssemblyAttrs.cs files were added to the System.Windows.Controls.Ribbon and WindowsFormsIntegration projects. These files define assembly-level attributes, including theme resource locations and XML namespace definitions for the respective namespaces, ensuring proper integration with the WPF and Windows Forms ecosystems.

src/Microsoft.DotNet.Wpf/src/System.Windows.Controls.Ribbon, src/Microsoft.DotNet.Wpf/src/WindowsFormsIntegration · medium confidence

Add document rights management and digital signature UI components

The PresentationUI library introduces a new set of internal classes to support document rights management (DRM) and digital signature workflows. This includes a \CredentialManagerDialog\ for managing user credentials, a \DocumentSignatureManager\ to coordinate signature states and policies, and a \DigitalSignatureProvider\ to interface with XPS packaging. The update also adds a \DialogBaseForm\ and \DocumentApplicationDocumentViewer\ to handle UI rendering and command binding for these features, alongside supporting enums and status resources.

src/Microsoft.DotNet.Wpf/src/PresentationUI/MS/Internal/Documents · high confidence

Add internal CompoundFile implementation for OLE structured storage

The WindowsBase library now includes a new internal implementation for handling OLE Compound Files (structured storage). This adds support for reading and writing Microsoft Office-style compound file formats, including stream and storage references, compression transforms, and native interop bindings to OLE32. Users working with legacy compound file formats will now have access to these internal APIs for packaging and unpacking structured storage documents.

src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/IO/Packaging/CompoundFile · high confidence

Introduced new internal types to manage Windows DPI awareness contexts more robustly. The DpiAwarenessContextValue enumeration maps to the Windows DPI\_AWARENESS\_CONTEXT pseudo-handles, and the DpiAwarenessContextHandle class wraps these handles as a SafeHandle to simplify comparison and conversion. A companion DpiUtil class provides a safe method to compare DPI context handles, falling back to trivial pointer comparison if the AreDpiAwarenessContextsEqual API is unavailable on older Windows versions.

src/Microsoft.DotNet.Wpf/src/Shared/MS/Utility/DpiAwarenessContext · high confidence

Add internal packaging infrastructure for digital signatures and stream emulation

The WindowsBase packaging layer introduces several new internal classes to support digital signature handling and stream emulation. A new \CertificatePart\ class manages X.509 certificate parts within a package, utilizing \X509CertificateLoader.LoadCertificate\ for deserialization. Stream handling is enhanced with \CompressEmulationStream\ and \DeflateEmulationStream\ to provide fully functional stream interfaces over restricted compression streams, while \IgnoreFlushAndCloseStream\ optimizes performance by suppressing flush and close calls. Additionally, \CustomSignedXml\ extends the standard \SignedXml\ to support XAdES-specific reference targeting, and \InternalRelationshipCollection\ centralizes relationship serialization. These changes provide the internal foundation for package integrity and compression emulation.

src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/IO/Packaging · high confidence

Add internal utility classes for WPF shared code

The WPF shared codebase now includes several new internal helper classes: AppDomainShutdownMonitor for tracking AppDomain shutdown events, CharacterBuffer for handling character memory buffers, CommandLibraryHelper for creating UI commands, CommonDependencyPropertyAttribute for marking common dependency properties, CopyOnWriteList for thread-safe list operations, CriticalExceptions for identifying critical exceptions, CulturePreservingExecutionContext for managing thread culture during dispatcher operations, DecoderFallbackWithFailureFlag for decoding failures, DoubleUtil and FloatUtil for fuzzy numeric comparisons, FixedPageInfo and GlyphRunInfo for glyph metrics, FreezableOperations for Freezable helpers, and SynchronizingStream for thread-safe stream access.

src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal · high confidence

Add internal value serializers for string and type conversion

The System.Xaml component now includes two new internal classes, StringValueSerializer and TypeConverterValueSerializer, which provide mechanisms for serializing and deserializing string values and converting types via TypeConverter instances. These additions support the XAML serialization infrastructure by handling string conversions and delegating to type converters, enabling more flexible value serialization within the framework.

src/Microsoft.DotNet.Wpf/src/System.Xaml/ms · high confidence

Add reference assemblies for System.Printing

Added the System.Printing reference assembly (System.Printing.cs and System.Printing.internals.cs) to the WPF build, exposing public and internal types such as PrintQueue, PrintServer, and related enums to support API compatibility and compilation of projects that depend on printing functionality.

src/Microsoft.DotNet.Wpf/src/System.Printing/ref · high confidence

Add reference assemblies for WPF input manipulation and UI automation

New reference assemblies have been added to expose the public API surface for 2D input manipulation and UI automation client-side providers. The System.Windows.Input.Manipulations namespace now includes types such as InertiaProcessor2D, ManipulationProcessor2D, and related event args and parameters, enabling developers to handle touch and gesture inputs in WPF applications. Additionally, the UIAutomationClientSideProviders assembly now exposes the ClientSideProviderDescriptionTable, allowing applications to access descriptions of client-side providers for UI Automation. These changes provide the necessary metadata for compilation and IntelliSense support without altering runtime behavior.

src/Microsoft.DotNet.Wpf/src/Shared/ref, src/Microsoft.DotNet.Wpf/src/System.Windows.Input.Manipulations/ref, src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/ref · high confidence

Add reference assembly for PresentationCore

A new reference assembly (PresentationCore.cs) has been added to the PresentationCore project. This file contains the public API surface for the core WPF types, including the Clipboard class with methods for handling audio, images, and text data, as well as event definitions for input and focus handling. This enables tooling and consumers to reference the library's public interface without requiring the full implementation.

src/Microsoft.DotNet.Wpf/src/PresentationCore/ref · high confidence

Add trace message definitions and assembly metadata for WPF

The WPF library now includes new files that define trace messages for debugging and diagnostics, specifically \AvTraceMessages.txt\ and \AvTraceMessages.xml\, which provide the data used to generate wrapper classes for trace sources. Additionally, \GlobalUsings.cs\ adds standard library imports, \HashHelper.cs\ provides a utility to check for reliable hash codes, and \LibraryAssemblyInfo.cs\ and \OtherAssemblyInfo.cs\ configure assembly attributes, including internal visibility for test projects and XML namespace definitions for XAML.

src/Microsoft.DotNet.Wpf/src/PresentationFramework · high confidence

Added 3D rendering and transformation classes to PresentationCore

The PresentationCore library now includes a new set of classes in the System.Windows.Media.Media3D namespace, introducing support for 3D graphics. This includes base classes and implementations for 3D geometry (Geometry3D, GeometryModel3D), 3D transforms (GeneralTransform3D, GeneralTransform3DGroup, GeneralTransform2DTo3D, GeneralTransform3DTo2D), 3D lights (AmbientLight, DirectionalLight), 3D materials (DiffuseMaterial, EmissiveMaterial), and 3D cameras. Additionally, a ContainerUIElement3D is provided to manage 3D visual children, and HitTestParameters3D supports 3D hit testing. These additions enable developers to render and interact with 3D content within the WPF framework.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media3D · high confidence

Added Aero and Aero2 theme resources for RibbonWindow styling

New XAML theme files (Aero.NormalColor.xaml, Aero2.NormalColor.xaml, and their .sdk variants) have been added to the WPF Ribbon control's Themes folder. These files define the visual styles for the RibbonWindow, including button templates, gradient brushes, and control templates for window caption buttons (minimize, maximize, close) in the Aero and Aero2 visual styles, ensuring consistent native-looking window chrome for Ribbon applications.

src/Microsoft.DotNet.Wpf/src/System.Windows.Controls.Ribbon/Themes · high confidence

Added BAML 2006 reader implementation

The BAML 2006 reader implementation has been added to the Presentation Framework, introducing the core classes required to parse and process BAML (Binary Application Markup Language) files. This includes the \Baml2006Reader\ and its supporting infrastructure such as \Baml2006SchemaContext\, \Baml2006ReaderContext\, and various helper classes like \Baml2006ReaderFrame\ and \Baml2006RecordType\. These changes enable the WPF framework to read and interpret BAML resources, which are a compiled form of XAML used for UI definition. The implementation includes handling of static resources, type conversions, and namespace mappings essential for loading XAML-based user interfaces.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Markup/Baml2006 · high confidence

Added BaseUriHelper to manage URI resolution for WPF elements

The new BaseUriHelper class provides static methods and properties to resolve the base URI for dependency objects within the WPF visual tree. This includes logic to handle relative URIs by resolving them against the application's base URI, ensuring that elements like images or resources can correctly locate their associated files or resources within the application package.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Navigation · high confidence

Added BitStream and Native helper classes for Ink processing

The WPF Ink subsystem now includes a new \BitStreamReader\ class that handles reading packed bits from byte arrays, supporting various bit-widths (16, 32, 64) and reverse byte order. This is accompanied by a \Native\ helper class that defines bit-width constants (e.g., \BitsPerByte\, \BitsPerInt\) and size constants for primitive types, ensuring consistent bit-packing behavior for the ISF encoder/decoder compatibility.

src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/Ink · high confidence

Added C\# 'Csp' tool and MilCodeGen support to WPF

Introduced the Csp tool, a C\# project interpreter and code generator located in src/Microsoft.DotNet.Wpf/src/WpfGfx/tools/csp. This tool parses and executes C\# projects, supporting a 'C\# Prime' extension for code generation, which is utilized by the MilCodeGen component. The change includes the core parser, runtime support, and test scripts for both standard C\# and C\# Prime projects.

src/Microsoft.DotNet.Wpf/src/WpfGfx/tools · high confidence

Added C\# reference assembly for WindowsBase

A new C\# reference assembly (WindowsBase.cs) has been added to the WindowsBase project. This file contains the public API surface for the WindowsBase library, including types such as CollectionChangedEventManager, CurrentChangedEventManager, DependencyPropertyDescriptor, and interfaces like ICollectionView and IEditableCollectionView. This change supports the project's shift to using GenAPI for generating reference assemblies, ensuring that consumers of the library have accurate metadata for compilation and tooling.

src/Microsoft.DotNet.Wpf/src/WindowsBase/ref · high confidence

Added C++ utilities for WPF path resolution and DWrite library loading

New C++ source files (Utils.cxx and dwriteloader.cpp) were added to the shared WPF C++ codebase. Utils.cxx implements registry reading and path resolution logic to locate the WPF installation directory, supporting both standard and private CLR configurations. dwriteloader.cpp provides a simplified mechanism to load dwrite.dll and retrieve the DWriteCreateFactory function pointer, replacing previous, more complex loading processes.

src/Microsoft.DotNet.Wpf/src/Shared/cpp · medium confidence

Added C++/CLI headers for WPF printing and GDI export

The WPF printing subsystem now includes a new set of C++/CLI header files in \src/Microsoft.DotNet.Wpf/src/System.Printing/CPP/inc\ that define the managed/unmanaged interop layer for asynchronous notifications, GDI-based rendering, and print system management. These headers introduce classes such as \AsyncNotify\ for handling print spooler notifications, \PrintDriver\ and \PrintFilter\ for managing printer drivers and filter pipelines, and a suite of GDI exporter headers (\GDIExporter/\) that wrap Win32 GDI32 API calls (like \CreateDC\, \StartDoc\, \DrawGeometry\) to facilitate legacy driver printing. This adds the necessary interface definitions and native method bindings to support the GDI rendering path in WPF.

src/Microsoft.DotNet.Wpf/src/System.Printing/CPP/inc · high confidence

Added C++/CLI implementation for System.Printing interop and thunking layers

The System.Printing namespace now includes a new C++/CLI implementation in the \CPP/src\ directory, introducing core components for asynchronous notifications (AsyncNotify), driver/job/printer thunking profiles, and data retrieval logic. This change adds the underlying managed/unmanaged bridge that enables WPF printing features to interact with Win32 APIs, supporting operations like enumerating printers, managing print jobs, and handling print system events.

src/Microsoft.DotNet.Wpf/src/System.Printing/CPP/src · high confidence

Added COM interop interfaces for XPS serialization

Added a new set of internal C\# interfaces in the \System.Windows.Xps.Serialization.RCW\ namespace, including \IOpcPartUri\, \IOpcUri\, \IXpsOMCanvas\, \IXpsOMDocument\, and others. These files are auto-generated Runtime Callable Wrappers (RCWs) derived from Windows SDK type libraries (\.idl\), enabling managed code to interact with the underlying COM-based XPS object model.

src/Microsoft.DotNet.Wpf/src/ReachFramework/Serialization/RCW · high confidence

Added Czech, German, Spanish, French, Italian, and Japanese localization files for WPF build tasks

The PresentationBuildTasks component now includes XLIFF localization files (Strings.cs.xlf, Strings.de.xlf, Strings.es.xlf, Strings.fr.xlf, Strings.it.xlf, and Strings.ja.xlf) in the Resources/xlf directory. These files contain translated strings for markup compilation diagnostics and status messages, enabling the WPF build system to display localized error codes (such as MC1002, MC6015, UM1001) and UI text in these languages.

src/Microsoft.DotNet.Wpf/src/PresentationBuildTasks/Resources/xlf · high confidence

Added D3DCompiler redist project for ARM64 support

A new MSBuild project file (D3DCompiler.vcxproj) was added to the WPF redist directory. This change enables the build system to properly handle the D3DCompiler DLL for ARM64 architectures, ensuring that the correct version of the library is included in the distribution for that platform.

src/Microsoft.DotNet.Wpf/redist/D3DCompiler · high confidence

Added Dispatcher and Task extension methods for WPF threading

New extension methods were added to the WPF threading model. The \DispatcherExtensions\ class now provides \BeginInvoke\ and \Invoke\ overloads that allow asynchronous and synchronous execution of delegates on the dispatcher thread, with support for priority and timeout parameters. Additionally, \TaskExtensions\ introduces \IsDispatcherOperationTask\ to identify tasks wrapping dispatcher operations, and \DispatcherOperationWait\ to wait for their completion. These additions enhance the integration between WPF's dispatcher model and modern asynchronous patterns.

src/Microsoft.DotNet.Wpf/src/System.Windows.Presentation · high confidence

Added FileHelper utility for safe temporary file creation and deletion

A new FileHelper class was added to the System.IO namespace, providing methods to atomically create and open temporary files and to delete them robustly. This addresses a race condition where an 'impolite process' could interfere with temp file creation, and ensures that failures to delete temp files (e.g., due to antivirus scans) do not crash the application.

src/Microsoft.DotNet.Wpf/src/Shared/System/IO · high confidence

Added GDI exporter implementation for WPF printing

Introduced a new set of C++ source files in the GDIExporter directory, including FontInfo, GdiBitmap, GdiBrush, GdiDevice, GdiPath, GdiPen, GdiPrintContext, GdiText, PrintMsg, and Utils. These files implement the native code logic for converting WPF drawing operations into GDI commands, handling tasks such as font management, bitmap and brush conversion, path and pen rendering, and text output, which are essential for the printing subsystem.

src/Microsoft.DotNet.Wpf/src/System.Printing/CPP/src/GDIExporter · high confidence

Added KeyboardNavigation class with tab and directional navigation support

The diff introduces the \KeyboardNavigation\ sealed class and the \KeyboardNavigationMode\ enum in the \System.Windows.Input\ namespace. This adds new attached properties (\TabIndex\, \IsTabStop\, \TabOnceActiveElement\, \ControlTabOnceActiveElement\) and methods to manage keyboard focus and navigation behavior for UI elements, enabling logical (Tab) and directional (arrow) navigation between focusable controls.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Input · high confidence

Added NativeRecognizer for ink gesture recognition

Introduced a new internal class, NativeRecognizer, which acts as a wrapper for the unmanaged recognition APIs in mshwgst.dll. This class manages the creation and disposal of recognition contexts, handles the setting of enabled gestures, and processes stroke collections to return gesture recognition results.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Ink/GestureRecognizer · high confidence

Added PackWebRequest, PackWebResponse, and PackageStore for pack URI handling

The WPF PresentationCore library now includes new classes to handle 'pack' scheme URIs. PackWebRequest and PackWebResponse implement the WebRequest and WebResponse interfaces to manage requests to packaged resources. PackWebRequestFactory registers the 'pack' scheme handler, while PackageStore provides a thread-safe cache for packages, allowing multiple parts of a package to be accessed without re-opening the file. This enables more efficient access to resources within XPS documents and other packaged formats.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/IO · high confidence

Added PenIMC COM wrapper classes to prevent COM apartment and rundown issues

The PenIMC component now includes new C++ classes—ComApartmentVerifier, ComLockableWrapper, and GitComLockableWrapper—that verify COM apartment states and lock/unlock COM objects to prevent rundown issues. These wrappers ensure that COM objects remain valid during critical operations, improving stability for pen and touch input handling in WPF applications.

src/Microsoft.DotNet.Wpf/src/PenImc · high confidence

Added PresentationNative redist project supporting ARM64

A new Visual C++ project file (PresentationNative.vcxproj) was added to the WPF redist directory, establishing a build configuration that includes ARM64 alongside existing Win32 and x64 platforms. This change enables the distribution of the PresentationNative native library for ARM64 architectures, supporting the broader WPF ARM64 support initiative.

src/Microsoft.DotNet.Wpf/redist/PresentationNative · high confidence

Added PrintSystemException and interop support for print system errors

Introduced the PrintSystemException class and supporting interop code (InteropWin32ApiThunk.cs) to handle print system errors. The new exception class provides constructors for generic errors, custom messages, inner exceptions, and specific error codes, mapping Win32 error codes to HRESULTs for consistent error reporting in the printing subsystem.

src/Microsoft.DotNet.Wpf/src/ReachFramework/PrintSystemExceptions · medium confidence

Added Reach and XPS exception types and string resources

The Reach and XPS packaging and serialization APIs now have dedicated exception classes (ReachException, ReachPackagingException, ReachSerializationException, XpsException, XpsPackagingException, and XpsSerializationException) along with a string table containing localized error messages for these operations.

src/Microsoft.DotNet.Wpf/src/ReachFramework/Exceptions · high confidence

Added Rights Management API surface in WindowsBase

The \System.Security.RightsManagement\ namespace in WindowsBase now includes core classes for managing digital rights, including \CryptoProvider\ for encryption and decryption services, \PublishLicense\ and \UnsignedPublishLicense\ for handling license structures, \SecureEnvironment\ for user activation and session management, and supporting types such as \ContentGrant\, \ContentUser\, \ContentRight\, and \RightsManagementException\. This provides the foundational types needed to acquire, bind, and enforce usage rights for protected content.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Security · high confidence

Added System.Data extension helpers for WPF data binding

A new SystemDataExtension class was added to the PresentationFramework-SystemData assembly. This class provides helper methods for interacting with System.Data types, including checks for DataView, DataRowView, and SqlNull values, as well as specialized handling for DataSet collection properties to prevent memory leaks and ensure proper object lifetimes during data binding.

src/Microsoft.DotNet.Wpf/src/Extensions/PresentationFramework-SystemData · medium confidence

Added System.Xaml markup extension and attribute types

The System.Xaml library now includes a comprehensive set of XAML markup extensions and attributes in the System.Windows.Markup namespace. This adds support for referencing types (TypeExtension), static members (StaticExtension), and null values (NullExtension) within XAML content. The update also introduces key attributes such as ContentProperty, ConstructorArgument, and MarkupExtensionReturnType to guide XAML parsing and serialization, alongside interfaces like IComponentConnector and INameScope to manage component initialization and name scoping during XAML loading.

src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Windows · high confidence

Added T4 template infrastructure for WPF trace source code generation

Added new T4 templates (AvTraceMessages.tt, PresentationTraceSources.tt) and corresponding MSBuild targets (GenAvMessages.targets, GenTraceSources.targets, DesignTimeTextTemplating.targets) to the WPF Arcade SDK. These files configure the build system to automatically generate C\# trace source classes and trace source properties from XML metadata during compilation, enabling consistent trace point generation across WindowsBase, PresentationCore, and PresentationFramework.

eng/WpfArcadeSdk/tools/CodeGen · high confidence

Added TextRange class for UI Automation text patterns

Introduced the TextRange class in the System.Windows.Automation.Text namespace, providing a client-side wrapper for text ranges in UI Automation. This new component enables applications to represent and manipulate spans of text within a Text Pattern container, including methods for cloning, comparing ranges, expanding to enclosing units, and finding subranges with specific attributes.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClient/System/Windows/Automation/Text · high confidence

Added TypeConverterHelper for URI resolution

A new TypeConverterHelper class has been added to the System.Windows.Media namespace. This helper provides a GetUriFromUriContext method that resolves relative URIs against a base URI obtained from an IUriContext, handling various scenarios such as absolute URIs, relative URIs with a base context, or fallback to the application's base URI.

src/Microsoft.DotNet.Wpf/src/Shared/System/Windows/Media · high confidence

Added UI Automation peers for WPF controls

Added new AutomationPeer classes for WPF controls including Button, Calendar, CheckBox, ComboBox, ContextMenu, DataGrid, and ContentText elements. These peers expose UI Automation patterns (such as Invoke, ExpandCollapse, Grid, Table, and Selection) to assistive technologies, enabling screen readers and other accessibility tools to interact with these controls. The implementation includes specific handling for control states, patterns, and child elements to ensure proper accessibility tree construction.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Automation · high confidence

Added UI Automation provider API wrappers and type forwarding

The UIAutomationProvider module now includes new internal wrappers for UIA Core API calls, including methods to raise various automation events (property changes, structure changes, notifications, etc.) and host provider lookups. Additionally, a new file provides type-forwarding attributes for key UI Automation interfaces, ensuring compatibility between the real and reference assemblies.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationProvider/MS · medium confidence

Added UI Automation provider interfaces and implementation

The UIAutomationProvider library now includes a new \AutomationInteropProvider\ class and a comprehensive set of provider interfaces (such as \IScrollProvider\, \ISelectionProvider\, \ITextProvider\, and others) that enable Win32 and Avalon servers to expose UI Automation patterns. These changes allow applications to interact with UI elements via the UI Automation framework, supporting features like scrolling, selection, text manipulation, and event notification.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationProvider/System · high confidence

Added WPF Annotation Framework classes

The PresentationFramework library now includes the core classes for the WPF Annotation framework, including the \Annotation\ object model, \AnnotationService\ for managing annotations on document viewers, and supporting types like \AnnotationResource\ and event args for change notifications. This enables developers to implement annotation features such as highlighting text, adding sticky notes, and persisting user annotations in WPF applications.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Annotations · high confidence

Added WPF ETW tracing infrastructure and code generation tools

Introduced a new tracing infrastructure for WPF, including a code generation tool (mcwpf) and associated scripts (EventTraceCodeGen.cmd) to produce managed and unmanaged source files from the wpf-etw.man manifest. This adds a suite of new files in src/Microsoft.DotNet.Wpf/src/Shared/Tracing, including the C\# generators (mcwpf/CommandLineParser.cs, mcwpf/mcwpf.cs), templates (wpf\_template.cs), and the resulting generated code (managed/wpf-etw.cs, managed/wpf-etw-xaml.cs) and native headers (native/wpf-etw.h, native/wpf-etw-valuemaps.h) that enable Event Tracing for Windows (ETW) diagnostics for WPF components.

src/Microsoft.DotNet.Wpf/src/Shared/Tracing · high confidence

Added WPF Ink and gesture recognition APIs

The \System.Windows.Ink\ namespace in \PresentationCore\ now includes core types for handling digital ink and touch gestures. This adds the \GestureRecognizer\ class for recognizing strokes as gestures, along with supporting types like \ApplicationGesture\ and \RecognitionConfidence\ enums, \GestureRecognitionResult\ for recognition outcomes, and \DrawingAttributes\ for styling strokes. Additionally, the \Stroke\ and \StrokeCollection\ classes provide the fundamental storage and manipulation of ink data, including hit-testing, transformation, and serialization capabilities.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Ink · high confidence

Added WPF and XAML shared source files for markup parsing and type conversion

Added new shared source files for the WPF and XAML markup systems, including ReflectionHelper, RuntimeIdentifierPropertyAttribute, TypeConverterHelper, XmlCompatibilityReader, and XmlWrappingReader. These files provide core functionality for reflection-based type resolution, XAML attribute handling, type conversion, and XML parsing compatibility, supporting both the build-time compiler (PBTCOMPILER) and runtime namespaces (System.Windows.Markup, System.Xaml).

src/Microsoft.DotNet.Wpf/src/Shared/System/Windows/Markup · high confidence

Added WPF font face handling infrastructure

Introduced a new internal font face subsystem in PresentationCore, including classes for parsing composite font XML files, managing font family identifiers, differentiating font styles, and loading physical font files. This adds support for composite font families, font face matching, and device font retrieval, enabling WPF to resolve and render fonts from .CompositeFont files and native font files.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/FontFace · high confidence

Added WPF graphics core type definitions

New header and C\# source files for WPF graphics (WpfGfx) have been added to the build, introducing core type definitions such as AVEvent, AVEventData, MilSegmentType, and various rendering flags. These files provide the underlying data structures and enumerations used by the WPF graphics subsystem.

src/Microsoft.DotNet.Wpf/src/WpfGfx/include/processed · high confidence

Added WPF graphics core types and interop layer

Added a new set of internal C\# files in the WPF graphics common layer, including generated command structures, export definitions, error codes, and rendering enums. These files establish the managed interface to the MIL (Media Integration Layer) core, enabling low-level graphics operations such as resource management, media playback, and render target handling.

src/Microsoft.DotNet.Wpf/src/Common/Graphics · high confidence

Added WPF graphics debugging and code generation infrastructure

Added the DbgXHelper library, a set of C++ utilities for debugging and interacting with the Windows Debugging Engine (WinDbg), including helper functions for reading memory, handling debugger events, and formatting output. Additionally, introduced the MilCodeGen tooling and supporting C\# model classes to generate WPF graphics resource types and managed code, enabling the build system to automatically produce necessary headers and source files for the graphics subsystem.

src/Microsoft.DotNet.Wpf/src/WpfGfx/codegen · high confidence

Added WPF graphics rendering components for scan operations and effects

The WPF graphics subsystem now includes new C++ implementations for core rendering tasks. This adds the \CEffectList\ class to manage effect parameters and resources, and introduces a full suite of scan operations in the \scanop\ directory, including bitmap handling, halftone conversion, and pixel format conversion logic. These components enable the underlying rendering engine to process image data and apply visual effects.

src/Microsoft.DotNet.Wpf/src/WpfGfx/common/scanop · high confidence

Added WPF input and focus management classes

Added new classes for WPF input handling, including \AccessKeyManager\ for managing access keys, \Cursor\ and \Cursors\ for standard and custom cursors, \FocusManager\ for tracking focus scope and events, and \DefaultTextStore\ for text composition support.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input · high confidence

Added WPF interop classes to PresentationCore

Introduced new classes in the \System.Windows.Interop\ namespace within \PresentationCore\, including \CursorInteropHelper\ for bridging Win32 cursor handles to Avalon \Cursor\ objects, \D3DImage\ for displaying Direct3D surfaces, and several input providers (\HwndAppCommandInputProvider\, \HwndKeyboardInputProvider\, \HwndMouseInputProvider\, \HwndPointerInputProvider\) that handle Windows messages for keyboard, mouse, stylus, and application commands. Also added \HwndSource\ and related helper classes to manage Win32 window integration and input routing.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/InterOp · high confidence

Added WPF primitive controls and types to PresentationFramework

The following new types were added to the \System.Windows.Controls.Primitives\ namespace, enabling richer UI composition and control behavior: \AutoToolTipPlacement\ enum for Slider tooltips; \BulletDecorator\ for decorating content with glyphs; \ButtonBase\ as the abstract base for button controls; \CalendarButton\ and \CalendarDayButton\ for Calendar control interactions; \CalendarItem\ for the Calendar's internal layout; \CustomPopupPlacement\ and \CustomPopupPlacementCallback\ for custom popup positioning; \DataGridCellsPresenter\ and \DataGridColumnHeader\ for DataGrid header and cell management. These additions provide the foundational building blocks for WPF controls, allowing developers to create custom templates, handle specific UI states, and manage complex layouts like calendars and data grids.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/Primitives · high confidence

Added WPF telemetry infrastructure for tracking control usage and printing status

New internal classes have been added to the WPF shared telemetry layer to support Asimov-compatible event sourcing and control usage tracking. The \TelemetryEventSource\ class provides a base for writing telemetry events with specific keywords (Telemetry, Measures, CriticalData) and tags (PII handling, latency, persistence). The \EventSourceActivity\ class manages activity-based tracing with start/stop states and parent-child relationships. Additionally, \TraceLoggingProvider\ handles the lazy, thread-safe initialization of the event source, while specific trace loggers (\ControlsTraceLogger\ and \XpsOMPrintingTraceLogger\) are introduced to log which WPF controls are used in an application and the status of Xps OM printing, respectively.

src/Microsoft.DotNet.Wpf/src/Shared/Telemetry · high confidence

Added WPF theme and C++ printing headers to the open-source repository

The WPF PresentationUI assembly now includes the full set of XAML theme files (Aero, Aero2, AeroLite, Classic, Generic, Luna variants, and MediaCenter), providing the default visual styles for Windows Presentation Foundation applications. Additionally, C++ header and source files for the System.Printing component have been added to support the native interop layer for printing functionality.

src/Microsoft.DotNet.Wpf/src/PresentationUI/Themes, src/Microsoft.DotNet.Wpf/src/System.Printing/CPP · high confidence

Added WPF-based installation UI pages for deployment errors and progress

The PresentationUI assembly now includes new XAML and code-behind files for the installation error and progress screens. The \InstallationError\ and \TenFeetInstallationError\ pages display error states, support links, and buttons to view logs or retry. The \TenFeetInstallationProgress\ page tracks download progress, displaying publisher, application name, and byte counts. These pages implement the \IErrorPage\ and \IProgressPage\ interfaces, providing the user interface for WPF-based installation scenarios.

src/Microsoft.DotNet.Wpf/src/PresentationUI · high confidence

Added Win32 interop layer for UI Automation client-side providers

The UI Automation client-side providers now include a new set of files in the MS.Win32 namespace that define Win32 constants, safe and unsafe P/Invoke signatures, and DLL name mappings. This adds the underlying Windows API bindings required for UI Automation to interact with native controls and system components.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Win32 · high confidence

Added Windows API interop helpers for Windows Forms integration

The Windows Forms integration layer now includes new internal helper classes and constants to interact with native Windows APIs. Specifically, the diff adds DCSafeHandle, ExternDll, NativeMethods, SafeNativeMethods, and UnsafeNativeMethods, which provide managed wrappers for Win32 functions such as GetDeviceCaps, CreateDC, DeleteDC, and various window messages and states. These changes consolidate low-level P/Invoke declarations and constants (e.g., WM\\, UIS\\) into a structured internal API, enabling the Windows Forms integration components to communicate with the underlying OS more reliably.

src/Microsoft.DotNet.Wpf/src/WindowsFormsIntegration/MS · high confidence

Added Windows Forms integration classes for hosting WPF content

Introduced a new set of classes in the \System.Windows.Forms.Integration\ namespace to facilitate the hosting of WPF elements within Windows Forms applications. This includes the \ElementHost\ control, which acts as a container for WPF content, and supporting infrastructure such as \ApplicationInterop\ for managing keyboard and message filtering, \Convert\ for translating between WPF and WinForms types (like cursors and images), \PropertyMap\ for synchronizing host control properties, and various event argument classes (\ChildChangedEventArgs\, \IntegrationExceptionEventArgs\, etc.) to handle state changes and errors.

src/Microsoft.DotNet.Wpf/src/WindowsFormsIntegration/System/Windows/Integration · high confidence

Added Windows Runtime wrappers for touch keyboard and UI settings

New internal classes have been added to PresentationCore to wrap WinRT APIs for the InputPane (touch keyboard) and UISettings (accent colors). These changes enable WPF applications to programmatically show/hide the touch keyboard and retrieve system accent colors, with fallbacks to default colors if the WinRT APIs are unavailable.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/WindowsRuntime · high confidence

Added WindowsBase interop and tracing infrastructure

The WindowsBase library now includes new internal interop wrappers for Win32 error codes and HRESULTs, along with native structure definitions for COM and file system operations. Additionally, a new tracing system has been introduced, providing \TraceSource\ instances for debugging WPF components like DependencyProperties, Freezables, and data binding, accessible via the \PresentationTraceSources\ class.

src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/Interop, src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Diagnostics · high confidence

Added WindowsBase interop types for message handling and keyboard input

The \System.Windows.Interop\ namespace now includes the \ComponentDispatcher\ and \ComponentDispatcherThread\ classes, which manage the message pump, idle processing, and modal state for the current thread. Additionally, the \IKeyboardInputSink\ and \IKeyboardInputSite\ interfaces are introduced to allow UI components to participate in tabbing, accelerators, and mnemonic processing. The \MSG\ struct is also added to represent Win32 window messages, with write access restricted to prevent security vulnerabilities in partial trust scenarios.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Interop · high confidence

Added WpfGfx include files for graphics and composition types

Added new header and source files to the WpfGfx include directory, including build scripts (GraphicsInclude.nativeproj), C++ headers (InternalGUIDs.h, spec\_string.h, std.h, wgx\_core\_types.h, wgx\_effect\_types.h), and C\# source files (exports.cs, wgx\_core\_dllname.cs, wgx\_error.cs). These files define internal GUIDs, memory management locks, P/Invoke wrappers for the MIL core, and error code enumerations, supporting the WPF graphics subsystem.

src/Microsoft.DotNet.Wpf/src/WpfGfx/include · high confidence

Added XAML context and parsing infrastructure

Introduced new internal classes in the System.Xaml namespace to support XAML parsing and object writing, including context management (ObjectWriterContext, XamlParserContext), frame stacks (ObjectWriterFrame, XamlCommonFrame), and dependency tracking (NameFixupGraph, NameFixupToken). These changes provide the foundational state management and namespace resolution logic required for processing XAML documents.

src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Xaml/Context · high confidence

Added XAML serialization primitives for WPF

The WPF XAML serialization infrastructure has been expanded with new internal classes in the \System.Windows.Markup.Primitives\ namespace. \ElementMarkupObject\ provides the core implementation for serializing \DependencyObject\ and CLR objects, handling property enumeration, constructor arguments, and pseudo-properties for collections and dictionaries. \ExtensionSimplifierMarkupObject\ and its associated wrappers (\MarkupObjectWrapper\, \MarkupPropertyWrapper\) simplify markup extensions during serialization. \FrameworkElementFactoryMarkupObject\ handles the serialization of \FrameworkElementFactory\ instances, including their properties and content. \MarkupWriter\ provides the public API (\GetMarkupObjectFor\, \SaveAsXml\) to serialize object trees to XML, enforcing serialization constraints such as public visibility and non-generic types.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Markup/Primitives · high confidence

Added XML data source sorting support in WPF

The WPF framework now includes new internal classes, SystemXmlExtension and XmlNodeComparer, to enable sorting of data produced by an XmlDataSource. The SystemXmlExtension class provides helper methods to identify and extract values from XmlNode objects, while the XmlNodeComparer implements IComparer to sort a view of data based on XPath queries and culture-specific string comparisons.

src/Microsoft.DotNet.Wpf/src/Extensions/PresentationFramework-SystemXml · high confidence

Added XPS packaging implementation classes

The ReachFramework's XPS packaging subsystem has been implemented with a new set of classes in the \src/Microsoft.DotNet.Wpf/src/ReachFramework/Packaging\ directory. This includes the \XpsDocument\ class for reading and writing XPS packages, along with supporting types such as \XpsFixedDocumentReaderWriter\, \XpsFixedPageReaderWriter\, \XpsDigitalSignature\, and \XpsInterleavingPolicy\. These classes provide the core functionality for managing XPS document structures, fixed pages, and digital signatures within the WPF framework.

src/Microsoft.DotNet.Wpf/src/ReachFramework/Packaging · high confidence

Added XPS schema resources and generators for the ReachFramework

The ReachFramework now includes the necessary resources and build tools to handle XPS (XML Paper Specification) schemas. This change adds the \Strings.resx\ file containing localized error messages for the ReachFramework, along with a new \Resources\ directory structure containing XSD schema files (such as \ContentTypes.xsd\, \OPC\_DigSig.xsd\, \SignatureDefinitions.xsd\, and \coreproperties.xsd\) in their master, publish, and validation variants. Additionally, the \SchemaGen\ and \SchemaPP\ C\# source files and a \generate.cmd\ script are introduced to preprocess and compile these schemas into embedded resources, enabling the framework to validate and process XPS documents according to the specified XML schemas.

src/Microsoft.DotNet.Wpf/src/ReachFramework/Resources, src/Microsoft.DotNet.Wpf/src/System.Windows.Input.Manipulations/Resources, src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationProvider/Resources · high confidence

Added XPS serialization components to ReachFramework

Introduced new classes for XPS serialization within the ReachFramework, including type converters for colors, fonts, and images, alongside supporting infrastructure like a CRC32 calculator, a drawing context flattener, and services for handling font subsets and image resources. These additions enable the serialization of visual tree elements, fonts, and images into XPS packages.

src/Microsoft.DotNet.Wpf/src/ReachFramework/Serialization · medium confidence

Added XPS serialization manager interfaces and implementations

Added new files in the ReachFramework serialization layer, including the \IXpsSerializationManager\ and \IXpsSerializationManagerAsync\ interfaces, along with implementations such as \NgcSerializationManager\, \NgcSerializationManagerAsync\, and various serializer classes (e.g., \NgcFixedDocumentSerializer\, \NgcPageContentSerializerAsync\). These changes introduce the core infrastructure for serializing Avalon content into XPS format, supporting both synchronous and asynchronous serialization workflows.

src/Microsoft.DotNet.Wpf/src/ReachFramework/Serialization/manager · high confidence

Added build infrastructure for WPF redistribution

A new \Redist\ project has been introduced in the WPF distribution to manage the build and packaging of redistributable components. This includes a \Directory.Build.props\ file that marks the project as a redistribution target and a \Redist.sln\ solution file that defines the build configurations for the \VCRuntime\ and \D3DCompiler\ native libraries across Debug/Release and x86/x64 architectures.

src/Microsoft.DotNet.Wpf/redist · high confidence

Added build infrastructure to generate WPF Fluent theme resources

Introduced new build scripts and project files (ThemeGenerator.Fluent.ps1, ThemeGenerator.pl, ThemeGenerator.proj) that automate the generation of combined XAML resource dictionaries for the Fluent theme. This infrastructure consolidates individual control styles and color resources into unified theme files (Light, Dark, High Contrast, and System), enabling the WPF framework to apply consistent, theme-aware styling to controls such as buttons, text boxes, and data grids.

src/Microsoft.DotNet.Wpf/src/Themes · high confidence

Added collection view and component model types to WindowsBase

The WindowsBase library now includes a comprehensive set of types for collection view management and component model support. This includes interfaces such as ICollectionView, ICollectionViewLiveShaping, and IEditableCollectionView, along with their corresponding event managers (e.g., CurrentChangedEventManager, ErrorsChangedEventManager, PropertyChangedEventManager) that implement the weak event listener pattern. Additionally, the change introduces the DependencyPropertyDescriptor class for wrapping property descriptors with dependency property features, and provides the ItemPropertyInfo class and IItemProperties interface to expose item property information. These additions enable advanced data binding, sorting, filtering, grouping, and editing capabilities within WPF applications.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/ComponentModel · high confidence

Added comprehensive documentation for WPF development, build, and contribution workflows

Introduced a suite of new documentation files to guide developers through the WPF build and contribution processes. The Developer Guide details local machine setup, running DRTs, debugging locally built assemblies, and testing API changes. New files cover the pull request acceptance criteria, code generation via T4 templates, API compatibility checking, and C++/CLI build constraints. Additional guides address issue tracking, cycle breakers, and localization, providing a complete reference for contributors and maintainers.

Documentation · high confidence

Added core WPF and Windows Base source files

The WPF and Windows Base libraries now include the AdornerHitTestResult class, which provides hit test results for adorner layers, and the ICustomTypeProvider interface for custom type resolution. Additionally, shared internal headers and IDL-generated C/C++ files for Windows Media Player controls and multimedia attributes have been added to the shared internal directory.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Design, src/Microsoft.DotNet.Wpf/src/Shared/internal, src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Reflection · medium confidence

Added core WPF document and UI element classes

The WPF framework now includes the foundational classes for document flow and visual decoration, including Adorner, AdornerLayer, Block, and related types. This adds support for rendering decorative overlays on UI elements and managing structured text content, enabling features like custom selection highlights, text editing cursors, and embedded UI elements within text flows.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents · high confidence

Added document serialization infrastructure for plug-in serializers

The \System.Windows.Documents.Serialization\ namespace now includes the core types that enable a plug-in architecture for document serialization. \ISerializerFactory\ and \SerializerDescriptor\ allow external assemblies to register themselves as available serializers, while \SerializerProvider\ manages the discovery and registration of these plug-ins via the Windows Registry. \SerializerWriter\ and \SerializerWriterCollator\ provide the abstract base classes that serializers must implement to handle writing \Visual\ and \DocumentPaginator\ content. This change introduces the foundational classes and interfaces required for the document serialization system to support third-party or custom serialization plugins.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/Serialization · high confidence

Added dynamic property and indexer accessor implementation for WPF

The PresentationFramework-SystemCore extension now includes a new implementation for dynamic property and indexer accessors. The \DynamicAccessorImpl.cs\ file introduces \DynamicPropertyAccessorImpl\ and \DynamicIndexerAccessorImpl\ classes that utilize the \System.Dynamic\ namespace to provide runtime access to properties and indexers on objects implementing \IDynamicMetaObjectProvider\. This allows WPF data binding and other features to dynamically access members on dynamic objects, with the \SystemCoreExtension\ class providing the factory methods to instantiate these accessors.

src/Microsoft.DotNet.Wpf/src/Extensions/PresentationFramework-SystemCore · high confidence

Added generated AvTrace message classes for WPF tracing

New generated files (AvTraceMessages.cs) were added to the PresentationCore and WindowsBase projects. These files define internal trace message classes for RoutedEvents, Animations, DependencyProperties, Freezables, and NameScopes, enabling detailed diagnostic tracing for these core WPF subsystems.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Generated, src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/Generated · high confidence

Added generated WPF graphics interop types

Added a new set of automatically generated files in the WpfGfx/Generated directory, including wgx\_command\_types.cs/h, wgx\_commands.cs/h, wgx\_misc.cs/h, wgx\_render\_types\_generated.h, wgx\_renderdata\_commands.h, and wgx\_resource\_types.cs/h. These files define the C\# and C/C++ enums, structs, and types that bridge the Media Integration Layer (MIL) commands and resources, enabling the managed WPF code to communicate with the native graphics subsystem.

src/Microsoft.DotNet.Wpf/src/WpfGfx/include/Generated · high confidence

Added generated animation classes for Thickness properties

The PresentationFramework library now includes generated code for animating Thickness properties. This includes the base class ThicknessAnimationBase and the concrete ThicknessAnimation class, as well as the keyframe-based ThicknessAnimationUsingKeyFrames and its associated collection. The change also introduces the abstract base ThicknessKeyFrame and its concrete implementations (Discrete, Linear, Spline, and Easing variants) to support complex, multi-step thickness animations in WPF.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Media · high confidence

Added internal AppModel helpers for handling cookies, credentials, and site-of-origin resources

The WPF runtime now includes new internal classes in the MS.Internal.AppModel namespace to manage HTTP cookies, custom credential policies for web requests, and loading resources from the site of origin. CookieHandler intercepts web requests and responses to manage cookies via WinInet. CustomCredentialPolicy registers a default credential policy that sends credentials for intranet, trusted, and local machine zones, while restricting default credentials for internet and untrusted zones. SiteOfOriginContainer and SiteOfOriginPart provide a mechanism to access application resources from the site of origin, supporting both local file and HTTP web requests.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/AppModel · high confidence

Added internal Rights Management SDK interop layer

The WindowsBase library now includes a new internal implementation for Rights Management (RM) support, introducing a managed wrapper around the unmanaged Promethium RM SDK. This change adds several new files to the \MS.Internal.Security.RightsManagement\ namespace, including \CallbackHandler.cs\ for managing asynchronous callbacks from the SDK, \ClientSession.cs\ for handling client sessions and activation, \Errors.cs\ for mapping SDK error codes to .NET exceptions, and \NativeRightsManagementAPIs\*.cs\ files that define the P/Invoke signatures and constants for the native APIs. This provides the foundational infrastructure for .NET applications to interact with Windows Rights Management services.

src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/Security/RightsManagement · high confidence

Added internal UI Automation identifier constants and API wrappers

The UI Automation types library now includes internal support for mapping UI Automation identifiers (properties, events, patterns, control types, and text attributes) to their underlying GUIDs and integer values. This change introduces \AutomationIdentifierConstants\ to manage version-specific support for Windows releases (from Windows 7 through Windows 10 RS5), \UiaCoreTypesApi\ to wrap calls to the \UIAutomationCore\ DLL, and \CodeQuality\_Approved.cs\ to suppress specific code analysis warnings for internal namespaces.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationTypes/MS · high confidence

Added internal UI Automation provider wrappers and utility classes

The PresentationCore library introduces a new internal \MS.Internal.Automation\ namespace containing a suite of classes that bridge WPF's \AutomationPeer\ infrastructure to the Windows UI Automation (UIA) provider model. This includes \ElementProxy\ and \ElementUtil\ to manage the visual tree and dispatching, \EventMap\ to track registered UIA events, and specific provider wrappers (e.g., \DockProviderWrapper\, \ExpandCollapseProviderWrapper\, \GridProviderWrapper\) that implement UIA interfaces like \IDockProvider\ or \IExpandCollapseProvider\. These changes enable WPF controls to expose their accessibility features to assistive technologies by marshalling calls from the UIA RPC thread onto the correct dispatcher context.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Automation · high confidence

Added internal XAML schema and namespace management classes

The System.Xaml library introduces several new internal classes in the System.Xaml.MS.Impl namespace to support XAML schema and namespace handling. This includes AssemblyNamespacePair for tracking assembly and CLR namespace associations, a thread-safe ConcurrentDictionary implementation for .NET 3.5 compatibility, KnownStrings for managing XAML directive strings, PositionalParameterDescriptor for handling positional parameters, XamlDirectiveCollection for managing XAML directives, XamlPropertyInfoKey for property metadata, and XmlNsInfo for XML namespace information. These classes provide the foundational infrastructure for XAML parsing and schema resolution.

src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Xaml/MS · high confidence

Added internal annotation anchoring and interpolation helpers

The WPF framework now includes a new set of internal classes to support document annotation anchoring and animation interpolation. The \AnimatedTypeHelpers\ class provides static methods for interpolating and performing arithmetic on \Thickness\ and \Double\ values, which are used by the animation system. Additionally, a complete set of internal classes has been added to the \MS.Internal.Annotations.Anchoring\ namespace, including \AttachedAnnotation\, \DataIdProcessor\, \FixedPageProcessor\, \FixedTextSelectionProcessor\, \LocatorManager\, \PathNode\, and \SelectionProcessor\. These classes implement the core logic for locating, generating, and resolving content locators for annotations in paginated documents and text selections.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS · high confidence

Added internal classes for printing configuration and device mode handling

The ReachFramework's internal printing configuration layer now includes new classes to manage printer device modes and resource strings. This includes the \COMPSTUISR\ class for retrieving localized strings from \compstui.dll\, and a suite of \DevMode\*\ classes (e.g., \DevMode\, \DevModePaperSizes\, \DevModeOrientation\) that map Windows GDI \DEVMODE\ structures and capabilities to .NET types. These additions provide the underlying support for printer settings and paper size resolution.

src/Microsoft.DotNet.Wpf/src/ReachFramework/MS · high confidence

Added internal ink rendering and hit-testing components

The WPF PresentationCore library now includes a suite of internal classes to support advanced ink (stylus) handling. This includes \Bezier\ for curve generation and flattening, \CuspData\ for analyzing stylus points and detecting cusps, \ContourSegment\ for representing edges in hit-testing, \DrawingFlags\ for rendering options, \EllipticalNodeOperations\ for processing elliptical stroke nodes, \ErasingStroke\ for managing erasing contours and hit-testing, \ExtendedProperty\ and \ExtendedPropertyCollection\ for storing and managing custom drawing attributes, \Lasso\ for polygonal selection regions, \Quad\ as a helper structure for connecting stroke nodes, and \Renderer\ for drawing ink. These components enable more accurate stroke fitting, hit-testing, and rendering of ink strokes.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Ink · high confidence

Added internal media serialization and text options helpers

The PresentationCore library introduces several new internal helper classes to support BAML serialization and text rendering options. ParserStreamGeometryContext is added to compress Path data into a compact binary format for startup performance and smaller BAML files. TextOptionsInternal provides attached properties for text hinting modes. XamlSerializationHelper and related structs (ThreeDoublesMarkup, Point, Size) support the conversion of types to custom binary formats. VisualTreeUtils adds internal methods for propagating flags and handling hit tests within the visual tree.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Media · high confidence

Added internal packaging stream and downloader classes to PresentationCore

Introduced several new internal classes in the \MS.Internal.IO.Packaging\ namespace to support package resource handling. \ByteRangeDownloader\ handles downloading resources via HTTP byte range requests. \DeobfuscatingStream\ provides a read-only stream that de-obfuscates font data according to the XPS specification. \NetStream\ implements a stream supporting progressive download and simultaneous web requests. \PreloadedPackages\ manages a global cache of preloaded packages. \PseudoWebRequest\ handles pack-specific URI requests resolved from the package store. \ResponseStream\ wraps streams to manage the lifetime of web response containers. These changes enhance the internal IO capabilities for packaging and resource management.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/IO · high confidence

Added known identifiers for Windows Ink properties

A new \KnownIds.cs\ file was added to the \System.Windows.Ink\ namespace, defining static \Guid\ constants for various ink-related properties such as \StylusHeight\, \StylusWidth\, \Color\, and spatial orientation attributes like \XTiltOrientation\ and \TwistOrientation\. These identifiers are mapped from an internal \KnownIdCache\ and are used to identify specific ink data attributes within the WPF ink subsystem.

src/Microsoft.DotNet.Wpf/src/Shared/System/Windows/Ink · high confidence

Added localization strings for WPF markup compilation tasks

The WPF markup compilation tasks now include a new resource file (Strings.resx) containing English localization strings for build and compilation status messages, such as 'MarkupCompilePass1 successfully generated BAML or source code files' and 'Markup compilation is done.' This change supports internationalization of the build task's output messages.

src/Microsoft.DotNet.Wpf/src/PresentationBuildTasks/Resources · high confidence

Added localized error messages for WindowsBase resources

Added the English source resource file (Strings.resx) and corresponding XLIFF translation files for Czech, German, Spanish, French, and Italian. These files provide localized error messages for various WindowsBase components, including Freezable, Dispatcher, and array operations, ensuring users see appropriate error text in their preferred language.

src/Microsoft.DotNet.Wpf/src/WindowsBase/Resources · high confidence

Added localized strings for UI Automation client-side providers

The UIAutomationClientSideProviders library now includes comprehensive localization resources. This change adds the English resource files (ExceptionStringTable.txt, StringTable.txt, Strings.resx) and XLIFF translation files for Czech, German, Spanish, French, Italian, and Japanese, enabling the UI Automation client-side providers to display user-facing messages and control names in those languages.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/Resources · high confidence

Added localized strings for UI Automation control types

Added the English resource file (Strings.resx) and XLIFF translation files for Czech, German, Spanish, French, Italian, Japanese, and Korean. These files provide localized display names for UI Automation control types, such as button, calendar, checkbox, and menu, enabling the UIAutomationTypes library to present these elements in the user's preferred language.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationTypes/Resources · high confidence

Added low-level native method wrappers for Windows Ink and Pointer input

New C\# files were added to PresentationCore to expose Windows Ink (PenIMC), pointer, and tablet recognition native APIs. These changes introduce P/Invoke declarations and safe handle wrappers for the Win32 tablet and pointer stacks, enabling WPF to interact with the underlying OS input services.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/Win32 · high confidence

Added minimal stubs for WPF and printing types to break build cycles

The \cycle-breakers\ directory now contains a set of empty or minimal stub classes and structs for WPF and printing namespaces, including \OpenFolderDialog\, \PrintCapabilities\, \PrintTicket\, and various serialization delegates. These stubs are intended to satisfy the build system's dependency graph, allowing the actual implementations to be compiled in a separate pass without circular reference errors. This change also introduces an \.editorconfig\ file to suppress specific code analysis warnings for these stub files.

src/Microsoft.DotNet.Wpf/cycle-breakers · high confidence

Added new C\# implementation for Ink Serialized Format (ISF) compression and serialization

The WPF \PresentationCore\ library now includes a complete C\# implementation for handling Ink Serialized Format (ISF) data, replacing previous native code dependencies. This adds new files for compression algorithms (Gorilla, Huffman), packet and property data serialization, and drawing attribute handling, enabling the .NET runtime to process and generate ink data without relying on the legacy \Penimc\ native library.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Ink/InkSerializedFormat · high confidence

Added new XAML parser components for handling generic type names and markup extensions

The System.Xaml parser now includes new internal classes to support parsing generic type names and markup extensions. Specifically, GenericTypeNameParser and GenericTypeNameScanner handle the parsing of generic type syntax (e.g., \Namespace.Type\<T\>\), while MePullParser and MeScanner provide the logic for parsing Markup Extensions (e.g., \{Binding ...}\). These components enable the XAML parser to correctly interpret complex type references and extension syntax within XAML content.

src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Xaml/Parser · high confidence

Added new internal classes for CompoundFile packaging support

The \src/Microsoft.DotNet.Wpf/src/WindowsBase/System/IO/Packaging/CompoundFile\ directory now includes several new internal classes that support the CompoundFile format. These include \DataSpaceManager\ for manipulating data spaces within a container, \FormatVersion\ for managing feature versioning, \StorageInfo\ and \StorageRoot\ for handling storages, \StreamInfo\ for handling streams, and \VersionPair\ for version tracking. These classes provide the underlying infrastructure for managing compound file structures, including data space management, storage hierarchy, and version control.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/IO/Packaging/CompoundFile · high confidence

Added new print capability and configuration classes to the WPF ReachFramework

The \src/Microsoft.DotNet.Wpf/src/ReachFramework/PrintConfig\ directory now contains a comprehensive set of internal classes for handling print job configurations and capabilities. This includes \PrintTicketConverter\ for converting between DEVMODE and PrintTicket formats, \PrintTicketManager\ for validating print tickets and resolving conflicts, and \PTProvider\ for interacting with unmanaged printer driver components. Additionally, new files define specific print features such as NUp, Collation, Duplex, Input Bins, Page Order, and Stapling, each with their respective option and capability classes that parse and expose printer settings.

src/Microsoft.DotNet.Wpf/src/ReachFramework/PrintConfig · high confidence

Added reference assemblies for WPF and Windows Forms integration

New reference assemblies have been added for the PresentationUI and WindowsFormsIntegration libraries. This includes the \PresentationUIStyleResources\ class in the \System.Windows.Documents\ namespace and the \ElementHost\ control along with related automation peers and event argument classes in the \System.Windows.Forms.Integration\ namespace, enabling better tooling support and compile-time checking for these WPF components.

src/Microsoft.DotNet.Wpf/src/PresentationUI/ref, src/Microsoft.DotNet.Wpf/src/WindowsFormsIntegration/ref · high confidence

Added reference assemblies for WPF printing and XAML frameworks

New reference assemblies have been added for the ReachFramework and System.Xaml libraries, providing the public API surface for WPF printing and XAML parsing. These files define the enums, classes, and interfaces (such as PageMediaSizeName, INameScope, and various XAML attributes) that developers use to build and compile against these frameworks.

src/Microsoft.DotNet.Wpf/src/ReachFramework/ref, src/Microsoft.DotNet.Wpf/src/System.Xaml/ref · high confidence

Added sRGB color profile resource and license

The PresentationCore library now includes the sRGB.icm color profile as an embedded resource, allowing applications to access standard color definitions. A corresponding license file has been added to clarify that the sRGB.icm binary is licensed to Microsoft by Hewlett Packard and re-licensed under the MIT license.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Resources · high confidence

Added shared C++ headers for WPF build and utility functions

New shared C++ header files have been added to the WPF shared include directory, providing build information macros, safe coding and error-handling macros, OS version detection helpers, and utility functions for reading the registry and loading DWrite libraries. These headers support the underlying C++ components of WPF by centralizing common definitions and helper classes.

src/Microsoft.DotNet.Wpf/src/Shared/inc · high confidence

Added shared WPF graphics utilities and safety checks

Introduced a new set of shared C++ headers and source files in the WPF graphics subsystem to support ARM64 and improve code safety. This includes arithmetic helpers with overflow-protected addition and multiplication, a thread-safety assertion class to detect single-threaded entry violations, a delegating IUnknown base class for COM interface management, and utility classes for DPI scaling and dynamic API loading. These additions provide foundational building blocks for the WPF graphics layer.

src/Microsoft.DotNet.Wpf/src/WpfGfx/common/shared · high confidence

Added standard utility and interop classes to PresentationFramework

The PresentationFramework assembly now includes a new \Standard\ namespace containing utility classes such as \ComGuids\, \Debug\, \DoubleUtilities\, \DpiHelper\, \ErrorCodes\, \MessageWindow\, \NativeMethods\, \ShellProvider\, and \Utilities\. These classes provide internal support for COM interop, DPI scaling, Windows shell integration, and native method calls, enabling core WPF functionality like taskbar progress, file dialogs, and window management.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard · high confidence

Added support for additional code pages in WPF text handling

A new InternalEncoding class has been added to register the CodePagesEncodingProvider, enabling access to additional character encodings (such as Windows-1252, GB2312, etc.) that are not included by default in .NET Core. This ensures that WPF applications can correctly handle text in various international code pages without requiring external dependencies or manual registration of encoding providers.

src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/Text · high confidence

Added support for encrypted packages and digital signatures in WindowsBase

The \System.IO.Packaging\ namespace now includes new types to support encrypted packages and digital signatures. \EncryptedPackageEnvelope\ enables creating and managing OLE compound files that hold encrypted packages with embedded publish and use licenses via \RightsManagementInformation\. Additionally, \PackageDigitalSignature\ and \PackageDigitalSignatureManager\ provide APIs to add, remove, and verify digital signatures on packages, including support for certificate embedding options and signature validation events.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/IO/Packaging · high confidence

Added support for window system backdrops on Windows 11

A new internal \WindowBackdropManager\ class has been introduced to manage window backdrops, enabling visual effects like the tabbed window and main window backdrop types on Windows 11. This implementation relies on the \DwmSetWindowAttributeSystemBackdropType\ API and respects the \DisableFluentThemeWindowBackdrop\ framework switch, allowing applications to render system-defined window backgrounds.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Appearance · high confidence

Added text formatting support classes in PresentationCore

The text formatting subsystem in PresentationCore now includes a comprehensive set of new types to support text layout and rendering. This includes the \CharacterBufferReference\ struct for managing character buffers, \CharacterHit\ for hit-testing, \CharacterBufferRange\ for string ranges, and \CultureSpecificCharacterBufferRange\ for culture-aware text. Additionally, \IndexedGlyphRun\ maps text indices to glyph runs, \MinMaxParagraphWidth\ calculates paragraph width constraints, and \NumberSubstitution\ handles locale-specific number formatting. The update also introduces \TextBounds\ and \TextRunBounds\ for bounding rectangle calculations, \TextBreakpoint\ for line-breaking states, \TextCharacters\ for symbol shaping, \TextCollapsingProperties\ for text collapsing features, \TextEmbeddedObject\ for inline objects, and \TextEndOfLine\ for line break control.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/textformatting · high confidence

Added touch keyboard management and COM interop utilities

The codebase now includes new internal classes to manage the Windows touch keyboard and handle COM interop. The \TipTsfHelper\ class provides logic to show and hide the touch keyboard, ensuring it appears when appropriate text input fields are focused. Additionally, \IUnknown\ and \NativePointerCriticalHandle\ introduce managed wrappers for COM interfaces and native pointers, facilitating safer interaction with unmanaged code.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Interop · high confidence

Added trace logging for COM spell-checker latency

A new trace logger, SpellerCOMActionTraceLogger, has been added to the WPF Documents tracing subsystem. It tracks the latency of COM calls related to spell-checking (creation, dictionary registration/unregistration, and comprehensive checks). This allows the platform to measure and monitor performance issues arising from stale COM registrations, particularly on Windows 8.1+.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/Tracing · high confidence

Added type conversion and serialization support for RoutedCommand

New files CommandConverter.cs and CommandValueSerializer.cs were added to the PresentationFramework, enabling the conversion of RoutedCommand instances to and from string representations. This allows commands to be serialized in XAML and deserialized back into command objects, supporting both known commands and custom commands defined as static properties or fields.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Input/Command · high confidence

Generated ValueSerializers for WPF serialization

The PresentationCore library now includes a new set of generated ValueSerializer classes for converting between string representations and .NET types used in XAML markup. This change adds generated serializers for 2D and 3D media types, including Brush, CacheMode, Geometry, Transform, and various collection types (DoubleCollection, Int32Collection, PathFigureCollection, PointCollection, VectorCollection) in the System.Windows.Media.Converters namespace, as well as Matrix3D, Point3D, Point4D, Quaternion, Rect3D, Size3D, and Vector3D in the System.Windows.Media.Media3D.Converters namespace. These classes implement the ValueSerializer contract to enable the XAML parser to serialize and deserialize these types during markup parsing and writing.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Converters, src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media3D/Converters · high confidence

Generated WPF framework classes added to PresentationFramework

The \FrameworkContentElement\ and \FrameworkElement\ classes in the \System.Windows\ namespace are now generated by the MilCodeGen tool, providing the underlying implementation for core WPF UI elements. This change introduces the generated source files for these types, which handle name scoping, logical tree management, and resource lookup, replacing or augmenting the previous manual implementation.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Generated · high confidence

Generated enum validation methods added to WPF

The MilCodeGen tool was run to generate new validation methods for various WPF enumeration types, including AlignmentX, BitmapScalingMode, BrushMappingMode, FillRule, GeometryCombineMode, PenLineCap, and TextRenderingMode. These generated files provide internal helper methods to validate enumeration values, which are used by the framework's property system to ensure type safety and correctness.

src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/Generated · high confidence

Generated types and converters for WindowsBase geometry structs

The \src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Generated\ directory now contains the generated C\# source files for several WindowsBase value types and their associated type converters: \Int32Rect\ and \Int32RectConverter\, \Point\ and \PointConverter\, \Rect\ and \RectConverter\, \Size\ and \SizeConverter\, and \Vector\ and \VectorConverter\. These files, produced by the MilCodeGen tool, provide the structural definitions, equality checks, parsing, and string conversion capabilities for these geometric types, enabling their use in XAML and data-binding scenarios.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Generated, src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Media/Generated · high confidence

Generated value serializers for WPF types

Added generated ValueSerializer classes for Int32Rect, Point, Rect, Size, Vector, and Matrix. These new files in the WindowsBase converters enable string-to-type and type-to-string conversions for these specific geometric and structural types, supporting XAML markup parsing and serialization.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Converters, src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Media/Converters · high confidence

Improved accessibility for WPF Ribbon controls

The WPF Ribbon control now exposes a complete set of AutomationPeers (e.g., for Ribbon, RibbonButton, RibbonComboBox, and InRibbonGallery), enabling screen readers and other assistive technologies to properly identify control types, retrieve labels, and interact with UI elements like scroll buttons and context menus.

src/Microsoft.DotNet.Wpf/src/System.Windows.Controls.Ribbon/Microsoft · high confidence

Initial import of MS.Utility shared source components

The shared utility classes in src/Microsoft.DotNet.Wpf/src/Shared/MS/Utility are introduced, including BindUriHelper, FrugalList, FrugalMap, ItemList, ItemMap, DTypeMap, PerfService, and Trace/TraceProvider. These provide optimized, low-allocation collections and diagnostic tracing capabilities for the WPF and XAML frameworks.

src/Microsoft.DotNet.Wpf/src/Shared/MS/Utility · high confidence

Internal helper classes and types added to PresentationCore

The PresentationCore assembly now includes a suite of internal helper classes and types in the MS.Internal namespace, including AnimatedTypeHelpers for interpolation and addition of various data types, CheckedPointers for safe pointer handling, Classification for Unicode script and character classification, CoreAppContextSwitches for runtime configuration, CustomCategoryAttribute for localized categories, DeferredElementTreeState for managing element tree changes, DpiScale2 for DPI scale operations, IListConverters for serializing lists, IVisual3DContainer for 3D container operations, KnownBoxes for caching common values, LoadedOrUnloadedOperation for deferred UI operations, MediaTrace for debug tracing, and PartialArray for array ranges. These additions support internal WPF rendering, layout, and accessibility features.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal · high confidence

Introduce WPF Animation subsystem classes

Added core classes for the WPF animation engine, including \Animatable\, \AnimationClock\, \AnimationClockResource\, \AnimationLayer\, \AnimationStorage\, \AnimationTimeline\, \AnimationType\, and various easing functions (\BackEase\, \BounceEase\, \CircleEase\). These files implement the runtime state management, property animation, and timing control for WPF UI elements.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Animation · high confidence

Introduce XAML runtime classes for object creation and conversion

Added new runtime classes in the System.Xaml namespace to handle XAML object instantiation, factory method invocation, and value conversion. The \ClrObjectRuntime\ class provides a standard reflection-based implementation for creating instances and converting values. The \DynamicMethodRuntime\ class offers a performance-optimized alternative using dynamic method generation to access non-public members. Additionally, \PartialTrustTolerantRuntime\ implements a fallback strategy that attempts transparent execution first and switches to the elevated dynamic method runtime if access is denied, ensuring compatibility across different trust levels.

src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Xaml/Runtime · high confidence

Introduce XAML schema reflection and type conversion infrastructure

The XAML schema namespace now includes a comprehensive set of classes for reflecting CLR types and managing value conversions. This includes \ClrProperty\, \ClrEvent\, and \ClrAttachableProperty\ to represent metadata about types, properties, and events. A new \BuiltInValueConverter\ class provides optimized, lazy-initialized converters for common types like \Int32\, \String\, and \DateTime\. Additionally, \CollectionReflector\ and \MemberReflector\ handle the detection of collection and dictionary types via reflection, while \ReferenceEqualityComparer\ ensures correct identity-based equality for schema objects.

src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Xaml/Schema · high confidence

Introduce internal OpenType layout and shaping engine

Added a new internal text shaping and layout engine in PresentationCore, including classes for composite font families, typeface metrics, glyph information lists, and OpenType layout processing. This introduces new internal APIs for contextual lookups, glyph caching, and font table handling, enabling more robust text rendering and layout capabilities within the WPF text formatting pipeline.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Shaping · high confidence

Introduce new WPF Imaging API types for bitmap handling

Added new types to the \System.Windows.Media.Imaging\ namespace, including the \BitmapCacheOption\ and \BitmapCreateOptions\ enumerations, the \BitmapCodecInfo\ class for codec metadata, and the core \BitmapDecoder\, \BitmapEncoder\, \BitmapFrame\, and \BitmapImage\ classes. These changes provide the foundational classes and options for loading, caching, and encoding images in WPF applications.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging · high confidence

Introduce new WPF classes for clipboard, event args, and compatibility preferences

The PresentationCore library adds several new types to support clipboard operations and UI behavior configuration. This includes the \AutoResizedEvent\ delegate and \AutoResizedEventArgs\ for handling window resize events, and a suite of \DataObject\*\ classes (\DataObjectCopyingEventArgs\, \DataObjectEventArgs\, \DataObjectPastingEventArgs\) that expose the \Copying\ and \Pasting\ events, allowing applications to inspect or modify clipboard data before it is used. Additionally, \CoreCompatibilityPreferences\ is introduced to allow runtime configuration of WPF behaviors such as ink bounding box calculations and multi-monitor clipping via application settings. The \DataFormat\ and \DataFormats\ classes provide a structured way to manage standard and custom clipboard data formats.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows · high confidence

Introduce new internal classes for raw stylus input processing and system gesture detection

Added several new internal classes to the WPF PresentationCore stylus subsystem to handle raw input and system gestures. This includes \DynamicRenderer\ and \DynamicRendererThreadManager\ to manage off-application dispatcher inking and thread management, \MultiTouchSystemGestureLogic\ to detect two-finger tap and rollover gestures, and a suite of classes (\RawStylusInput\, \RawStylusInputReport\, \RawStylusSystemGestureInputReport\, \RawStylusActions\) to encapsulate and validate raw stylus data and actions. These changes provide the underlying infrastructure for processing stylus and touch input events.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/Stylus/Common · high confidence

Introduced AlphaFlattener components for improved rendering of transparency and gradients

Added a new set of internal classes within the ReachFramework's AlphaFlattener namespace, including BrushProxy, DrawingContext, Flattener, ImageProxy, Interfaces, MetroDevice, Optimizer, Primitive, PrimitiveList, and PrimitiveRenderer. These components implement a tree-flattening and alpha-flattening pipeline that rasterizes complex visual trees into a DisplayList for more efficient rendering of opacity, gradients, and image blending in the print and print-preview subsystems.

src/Microsoft.DotNet.Wpf/src/ReachFramework/AlphaFlattener · high confidence

Introduced AppContext-based compatibility switches and attribute-based property browsing for WPF

The WindowsBase library now exposes a new set of AppContext-based compatibility switches, including \BaseCompatibilityPreferences\ and \AccessibilitySwitches\, which allow applications to opt into legacy behaviors for dispatcher synchronization context handling and accessibility features. Additionally, new attributes (\AttachedPropertyBrowsableForTypeAttribute\, \AttachedPropertyBrowsableWhenAttributePresentAttribute\) have been added to control the visibility of attached properties in design-time and type-descriptor scenarios, giving developers finer control over which types or attributes make properties browsable.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows · high confidence

Introduced WISP (Windows Ink Platform) stylus input stack

Added new internal classes for the WISP stylus input stack, including PenContext, PenThread, PenThreadPool, WispLogic, and WispStylusDevice. These files implement the core logic for handling stylus and touch input events, managing tablet device contexts, and coordinating with the underlying PenIMC COM interfaces.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/Stylus/Wisp · high confidence

Introduced new internal font caching infrastructure

Added a new set of internal classes to the PresentationCore font cache, including BufferCache for thread-safe array pooling, CachedFontFace and CachedFontFamily for efficient font face and family representation, and CanonicalFontFamilyReference for normalized font family resolution. These changes establish a new internal architecture for managing font resources, replacing previous implementations with a more structured caching and lookup mechanism.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/FontCache · high confidence

Introduces C++ OS version detection helpers for WPF

Adds a new shared C++ library (OSVersionHelper) that provides native C++ functions to detect Windows versions (XP through 10/Server) and retrieve OS version details. This enables WPF to perform runtime OS checks in native code, supporting features like ARM64 builds and improved compatibility with various Windows releases.

src/Microsoft.DotNet.Wpf/src/Shared/OSVersionHelper · high confidence

Introduces internal document processing and rights management infrastructure

Adds a suite of internal classes to the PresentationUI framework to support document management, dependency chaining, and rights management enforcement. This includes the \Document\ base class and its concrete implementations (\PackageDocument\, \RightsDocument\, \FileDocument\) which manage file streams and dependencies. The update introduces \ChainOfDependencies\ and \ChainOfResponsibility\ patterns to handle ordered execution of document controllers. It also adds \CommandEnforcer\ to manage RMPolicy bindings and disable PrintScreen when required, \CriticalFileToken\ for secure file access, and \DocumentProperties\ to wrap the properties dialog. Additionally, utility classes for mailto URIs and application state are added to support these features.

src/Microsoft.DotNet.Wpf/src/PresentationUI/MS/Internal/Documents/Application · high confidence

Introduces local AppContext switch management for WPF libraries

Adds new internal classes to manage application context switches for WPF components. AppContextDefaultValues handles parsing the Target Framework Name to populate default switch values, while LocalAppContext provides a thread-safe, cached mechanism to query and define these local switch defaults. This infrastructure allows WPF libraries to configure their own compatibility switches independently of the central AppContext, improving performance by avoiding reflection and enabling per-library switch configuration.

src/Microsoft.DotNet.Wpf/src/Common/src/System · high confidence

Introduction of the DirectWriteForwarder native library

The DirectWriteForwarder project has been added to the WPF build, introducing a new C++/CLI native library that forwards DirectWrite calls. This change includes the solution file, the C++/CLI project configuration, and the C++ source files that handle module initialization and dependency loading, enabling WPF to utilize DirectWrite for text rendering.

src/Microsoft.DotNet.Wpf/src/DirectWriteForwarder · high confidence

Migrated DirectWrite wrapper to managed C++/CLI

The DirectWrite wrapper in the WPF text rendering stack has been migrated from native C++ to managed C++/CLI. This change introduces a new set of header and source files (including DWriteTypeConverter, Factory, Font, and various DWrite interface wrappers) that bridge the .NET types with the native DirectWrite COM interfaces. The migration includes type converters for font weights, stretches, and simulations, as well as a managed font file loader and factory implementation that caches file timestamps to improve performance. This allows the WPF text subsystem to leverage DirectWrite for improved typography and font handling on Windows.

src/Microsoft.DotNet.Wpf/src/DirectWriteForwarder/CPP/DWriteWrapper · high confidence

New APIs for Windows 7+ taskbar and shell integration

Added new types in the System.Windows.Shell namespace to support Windows 7+ shell features. This includes JumpList, JumpItem, JumpPath, and JumpTask for managing the application's Jump List (recent and frequent items). Additionally, TaskbarItemInfo and ThumbButtonInfo provide dependency properties to control the taskbar progress bar, overlay, description, and thumbnail button states, while WindowChrome and WindowChromeWorker enable custom window chrome and hit-testing behavior.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Shell · high confidence

New BAML localization API for WPF applications

The PresentationFramework library introduces a new set of classes in the System.Windows.Markup.Localizer namespace to support BAML localization. This includes the BamlLocalizer class for extracting and updating localizable resources, the BamlLocalizationDictionary to manage resource collections, and supporting types like BamlLocalizableResource, BamlLocalizableResourceKey, and BamlLocalizabilityResolver. The API also provides error handling via the BamlLocalizerError enumeration and BamlLocalizerErrorNotifyEventArgs for error notification.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Markup/Localizer · high confidence

New BAML parsing and serialization infrastructure in PresentationFramework

The WPF markup subsystem received a comprehensive overhaul of its BAML (Binary Application Markup Language) handling. New internal classes have been introduced to manage the reading and writing of BAML records, including \BamlRecordReader\ and \BamlRecordWriter\ for stream processing, and \BamlBinaryReader\/\BamlBinaryWriter\ for low-level binary I/O. The update also adds \AttributeData\ and \DefAttributeData\ to cache attribute information for compact syntax properties, and introduces \BamlCollectionHolder\ to manage property collections. Additionally, \BamlMapTable\ and \BamlVersionHeader\ are added to track type and assembly mappings and handle BAML format versioning. These changes provide the foundation for the new BAML parsing and serialization capabilities.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Markup · high confidence

New DataSourceProvider base class for data binding

Added the abstract DataSourceProvider class in the System.Windows.Data namespace, providing a common base for data source providers that execute queries to produce data for Avalon data bindings. This introduces the core abstraction for data providers, including methods for initial loading and refreshing data, along with properties for tracking data changes and errors.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Data · high confidence

New UI Automation properties, events, and notification types

The UI Automation API in \System.Windows.Automation\ has been expanded with new types to support additional accessibility features. This includes \ActiveTextPositionChangedEventArgs\ and \HeadingLevel\/\IsDialog\ properties on \AutomationElementIdentifiers\ to expose heading levels and dialog states. New event args (\AsyncContentLoadedEventArgs\, \AutomationPropertyChangedEventArgs\) and event identifiers (\AsyncContentLoadedEvent\, \ActiveTextPositionChangedEvent\) are added to track asynchronous content loading and text position changes. Additionally, \AutomationNotificationKind\ and \AutomationNotificationProcessing\ enums are introduced to control how live region updates and other notifications are presented to the user.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationTypes/System · high confidence

New XAML markup support types and utilities added to PresentationCore

The PresentationCore library now includes new types to support XAML parsing and serialization: the IAddChild and IProvidePropertyFallback interfaces for handling child elements and property fallbacks, the XamlCoreSerializerUtil helper class for serialization logic, and the XmlLanguage class with its associated converter to manage RFC 3066 language tags in markup.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Markup · high confidence

New automation properties and enumerations for accessibility

Added new types to the Windows Automation API to support enhanced accessibility features. This includes the \AutomationHeadingLevel\ and \AutomationLiveSetting\ enumerations, which allow developers to specify heading levels and live region notification behaviors for assistive technologies. Additionally, the \AutomationProperties\ class now exposes attached properties and helper methods for \HeadingLevel\ and \IsDialog\, enabling UI elements to expose these specific accessibility attributes to UI Automation clients.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Automation · high confidence

New diagnostics APIs for binding failures and resource dictionary lifecycle

Added new classes in the System.Windows.Diagnostics namespace to expose diagnostic information about the WPF runtime. BindingDiagnostics provides a BindingFailed event and a NotifyBindingFailed method to track binding failures, while ResourceDictionaryDiagnostics exposes events for when themed and generic ResourceDictionaries are loaded or unloaded, along with methods to enumerate them. Supporting types include BindingFailedEventArgs, ResourceDictionaryLoadedEventArgs, ResourceDictionaryUnloadedEventArgs, ResourceDictionaryInfo, and StaticResourceResolvedEventArgs to carry the relevant data for these diagnostic events.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Diagnostics · high confidence

New file and folder picker dialogs for WPF

Added new classes to the \Microsoft.Win32\ namespace to support modern Windows file and folder selection. The \OpenFileDialog\ and \SaveFileDialog\ classes provide wrappers around the Windows \IFileOpenDialog\ and \IFileSaveDialog\ interfaces, exposing properties like \Multiselect\, \ForcePreviewPane\, \CreatePrompt\, and \OverwritePrompt\. Additionally, \OpenFolderDialog\ allows users to select directories, and \FileDialogCustomPlaces\ provides static access to common system folders (e.g., Documents, Pictures) for the dialog's favorites pane. These classes inherit from new base classes \CommonDialog\, \CommonItemDialog\, and \FileDialog\ to share common dialog behavior.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/Microsoft · high confidence

New file dialog and application theme APIs

The reference assembly for PresentationFramework now exposes the OpenFolderDialog class and the ThemeMode property on Application, enabling developers to build folder-selection dialogs and detect or control the application's theme mode. Additionally, the CommonDialog base class and related file-dialog types (FileDialog, OpenFileDialog, SaveFileDialog) are defined in the reference assembly, providing the public API surface for these UI components.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/ref · high confidence

New internal type conversion and service provider implementations in WindowsBase

The WindowsBase library introduces several new internal classes to support XAML markup processing and type conversion. A new \DateTimeConverter2\ class wraps \DateTimeValueSerializer\ to enable string-to-DateTime conversions within the markup context. The \TypeTypeConverter\ is added to handle \System.Type\ conversions via the XAML type resolver. Additionally, \ServiceProviders\ is introduced to manage service lookups and registrations, while \InternalTypeHelper\ provides an abstract base for internal type and property access. The deprecated \IReceiveMarkupExtension\ interface is also included, marked with an obsolete attribute.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Markup · high confidence

New pointer-based input stack for stylus and touch

A new internal implementation of the stylus and touch input handling has been added to PresentationCore, introducing a modern WM\_POINTER-based stack. This includes new classes such as PointerLogic, PointerStylusDevice, and PointerInteractionEngine, which manage pointer data, interaction contexts, and flick detection. This change provides a new pathway for processing raw stylus and touch input events, enabling more accurate gesture recognition and input handling in WPF applications.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/Stylus/Pointer · high confidence

New resource loading and management types in WPF

Added new types to support resource handling in WPF applications. This includes the \Span\ and \SpanVector\ structs in \MS.Internal.Generic\ for managing value ranges, the \AssemblyAssociatedContentFileAttribute\ in \System.Windows.Resources\ to associate loose content files at compile time, and the \StreamResourceInfo\ class in \System.Windows.Resources\ to encapsulate stream-based resources with their content types.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Generic, src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Resources, src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Resources · high confidence

New types for WPF media and text rendering

The WPF media library now includes a new \DisableDpiAwarenessAttribute\ to allow applications to opt out of DPI awareness for WPF UI elements, and introduces the \TextFormattingMode\ enum with \Ideal\ and \Display\ options to control text rendering metrics. Additionally, the \Matrix\ struct in \System.Windows.Media\ is added, providing methods for matrix multiplication, rotation, and transformation operations.

src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Media · high confidence

New visual tree and XAML source diagnostics APIs

Developers can now subscribe to the new VisualTreeChanged event to receive notifications about visual tree modifications, and use the GetXamlSourceInfo method to retrieve source location details (URI, line number, and position) for objects loaded from XAML or BAML. This enables diagnostic tools to track UI structure changes and identify the origin of UI elements.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Diagnostics · high confidence

Open-sourced WPF build tasks

The WPF build tasks in PresentationBuildTasks are now open-sourced. This includes the MSBuild tasks responsible for compiling XAML markup (MarkupCompilePass1, MarkupCompilePass2), generating temporary target assemblies, classifying and embedding resources, managing unique identifiers in XAML, and updating application manifests for browser-hosted applications.

src/Microsoft.DotNet.Wpf/src/PresentationBuildTasks/Microsoft · high confidence

UI Automation client library source code added

The source code for the UI Automation client library (UIAutomationClient) has been added to the project, introducing the core classes for UI Automation, including condition evaluation (AndCondition, Condition), element management (AutomationElement, AutomationElementCollection), event handling (AutomationFocusChangedEventArgs), caching (CacheRequest), and pattern implementations (DockPattern, BasePattern). This provides the foundational API for accessing UI automation elements and properties.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClient/System/Windows/Automation · high confidence

WPF Media namespace source code added to PresentationCore

The WPF Media namespace source files, including classes such as AncestorChangedEventArgs, ArcSegment, BezierSegment, BitmapCache, and Brush, have been added to the PresentationCore assembly. This change introduces the core implementation of the System.Windows.Media namespace, providing the foundational types for WPF's 2D and 3D rendering, geometry, and brush systems.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media · high confidence

WPF System.Printing builds for ARM64 and .NET 6

The System.Printing component now supports building for the ARM64 architecture and targets .NET 6. This enables WPF applications using printing functionality to run natively on ARM64 devices and benefit from the features and improvements in .NET 6.

src/Microsoft.DotNet.Wpf/src/System.Printing · high confidence

WPF XAML markup compiler adds localization and error-handling infrastructure

The WPF XAML markup compiler now includes new internal classes to support localization file generation and improved error handling. A new \LocalizationParserHooks\ class intercepts XAML parsing to collect localization comments and attributes, writing them to a \.loc\ file. An \LocalizationDirectivesToLocFile\ enum controls the level of localization data extracted. Additionally, an \AssemblyVersionParseException\ is introduced to properly surface assembly version parsing errors during compilation, and supporting types like \SourceFileInfo\ and \CompilationUnit\ are added to manage file paths and compilation state.

src/Microsoft.DotNet.Wpf/src/PresentationBuildTasks/MS/Internal/MarkupCompiler · high confidence

WPF build infrastructure: new MSBuild tools and scripts for API compatibility, test payloads, and code analysis

The WPF build system introduces several new MSBuild targets and configuration files in the WpfArcadeSdk/tools directory to support modern .NET build practices. API compatibility checks against .NET Framework 4.8 and reference assemblies are now handled via ApiCompat.props/targets. Test payload creation and DRT (Debug Runtime Tests) inclusion are managed by new targets like CreateTestPayload.targets and AddDrtsToPayload.targets. Code analysis is configured via CodeAnalysis.props/targets, pulling in StyleCop, Microsoft.CodeAnalysis.NetAnalyzers, and other analyzers. Additionally, scripts for generating trace sources, trace strings, and XML string tables are added to automate code generation tasks.

eng/WpfArcadeSdk/tools · high confidence

WPF build tasks now support incremental compilation

The WPF markup compiler tasks now cache build state and local reference information to enable incremental builds. This means that when XAML files are modified, only the affected files are recompiled, significantly reducing build times for large WPF projects. The system tracks changes to source code, content files, and build settings to determine which XAML files need recompilation.

src/Microsoft.DotNet.Wpf/src/PresentationBuildTasks/MS/Internal/Tasks · high confidence

WPF commanding infrastructure added to PresentationCore

The commanding subsystem for WPF has been introduced into the PresentationCore assembly. This includes the core command classes (ApplicationCommands, ComponentCommands, NavigationCommands, MediaCommands), the CommandManager for routing and event handling, and supporting types like CommandBinding, InputBinding, and related event arguments. This provides the foundational API for handling input gestures and executing commands in WPF applications.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/Command · high confidence

WPF data binding and collection view infrastructure added

The WPF data binding subsystem is introduced with new core classes including Binding, BindingBase, BindingExpression, and BindingExpressionBase, enabling two-way, one-way, and one-time data flows between UI elements and data sources. The BindingGroup class is added to manage collections of bindings and provide cross-binding validation. Additionally, the CollectionView infrastructure is expanded with the introduction of BindingListCollectionView to support ADO DataViews, and helper operations for managing bindings are exposed via the BindingOperations class.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Data · high confidence

WPF graphics engine (MIL) source code added to the repository

The WPF graphics engine (MIL) source code, including the core API, brush, factory, and light data implementations, has been added to the repository. This includes the project configuration files and C++/C header and source files that define the rendering and graphics primitives used by WPF.

src/Microsoft.DotNet.Wpf/src/WpfGfx/core · high confidence

WPF shared build and assembly metadata

Added a README.md file to the Shared folder with a note about coordinating changes with the WPF team, and introduced RefAssemblyAttrs.cs which defines build version constants and public key tokens for WPF assemblies such as WindowsBase, PresentationCore, and PresentationFramework.

src/Microsoft.DotNet.Wpf/src/Shared · high confidence

WindowsBase assembly metadata and build infrastructure added

The WindowsBase library now includes its solution file, global using directives, resource string helpers, trace message definitions, and assembly attributes. These changes establish the foundational build structure and metadata for the WindowsBase assembly, including InternalsVisibleTo declarations for related WPF assemblies and type forwarding for XAML and packaging types.

src/Microsoft.DotNet.Wpf/src/WindowsBase · high confidence

XAML resource strings localized for Czech, German, Spanish, and French

The XAML subsystem now includes localized error and status messages for Czech, German, Spanish, and French. This update ensures that runtime exceptions and validation errors in the System.Xaml library are displayed in the user's preferred language, improving the debugging experience for developers working with XAML-based applications in these locales.

src/Microsoft.DotNet.Wpf/src/System.Xaml/Resources/xlf · high confidence

Behavioural changes

Add UI Automation type definitions for new properties and events

The UIAutomationTypes reference assembly now exposes new automation properties and events, including HeadingLevel, IsDialog, ActiveTextPositionChanged, and AsyncContentLoaded, enabling developers to access these accessibility features in their applications.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationTypes/ref · high confidence

Add VCRuntime project for Windows runtime distribution

A new Visual Studio C++ project file (VCRuntime.vcxproj) has been added to the WPF redist directory. This project configures the build for Debug and Release modes across Win32, x64, and arm64 platforms, and sets up the copying of privatized copies of the Visual C++ runtime (vcruntime and msvcp DLLs) into the output directory for both Debug and Release builds.

src/Microsoft.DotNet.Wpf/redist/VCRuntime · medium confidence

Added assembly metadata and native method declarations for System.Windows.Primitives

The System.Windows.Primitives library now includes an AssemblyInfo.cs file that configures CLS compliance and grants internal visibility to key WPF and related assemblies (such as PresentationFramework, WindowsBase, and UIAutomationClient). Additionally, NativeMethods.json and NativeMethods.txt have been added to configure CsWin32 for P/Invoke declarations, listing specific Windows API functions and constants (e.g., CoInitialize, DwmIsCompositionEnabled) to support native interop within the primitives layer.

src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives · high confidence

Added localized error messages for WPF core components

The WPF framework now includes comprehensive localized error messages for the PresentationCore library. This change introduces the English exception string table and resource files (Strings.resx) along with their translations for Czech, German, and Spanish (Strings.cs.xlf, Strings.de.xlf, Strings.es.xlf). These resources provide user-friendly, localized descriptions for various runtime exceptions, such as invalid animation timelines, layout recursion limits, and input handling errors, ensuring that error messages displayed to users are correctly translated into their preferred language.

src/Microsoft.DotNet.Wpf/src/PresentationCore/Resources · high confidence

Added localized resources for XPS digital signatures and rights management

Added new resource files to the WPF PresentationUI, Ribbon, and WindowsFormsIntegration projects. This includes the English string table and ResX files containing UI strings for the digital signature workflow (e.g., 'Digital Signature', 'Sign XPS Document', and various error messages) as well as localized XLIFF translation files for Czech, German, and Spanish. These resources support the user-facing dialogs and messages related to signing XPS documents and managing rights-based permissions.

src/Microsoft.DotNet.Wpf/src/PresentationUI/Resources, src/Microsoft.DotNet.Wpf/src/System.Windows.Controls.Ribbon/Resources, src/Microsoft.DotNet.Wpf/src/WindowsFormsIntegration/Resources · high confidence

Added missing accessibility (UIA) peer classes for WPF Ribbon controls

The reference assembly for System.Windows.Controls.Ribbon now includes the full set of AutomationPeer classes for Ribbon components, such as RibbonApplicationMenu, RibbonButton, RibbonCheckBox, RibbonComboBox, RibbonContextMenu, RibbonContextualTabGroup, RibbonControl, RibbonControlGroup, RibbonGallery, RibbonGroup, and RibbonMenuButton. This ensures that assistive technologies and screen readers can properly interpret the structure and state of Ribbon UI elements, improving accessibility for users relying on these tools.

src/Microsoft.DotNet.Wpf/src/System.Windows.Controls.Ribbon/ref · high confidence

Added packaging utilities and stream handling for WPF

Introduced new internal utilities for handling OPC package structures and stream operations. Added ContainerFlags to define options for Avalon application containers, and implemented PackagePartExtensions to ensure streams returned from PackagePart are seekable, addressing behavioral differences in .NET Core 3.0 where non-seekable streams could cause crashes. Included PackagingUtilities for encoding verification and stream read/write argument validation.

src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/IO/Packaging · high confidence

Adopts System.Formats.Nrbf for WPF serialization

WPF now uses the shared System.Formats.Nrbf library for handling Nrbf serialization, replacing the previous implementation. This change introduces new extension methods for deserializing common types like PointF, RectangleF, and primitive lists, and delegates core serialization logic to the shared serializer, ensuring consistent behavior across .NET.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Nrbf · medium confidence

Default AppContext switch values for PresentationCore are defined

The PresentationCore library now explicitly defines default values for a range of AppContext switches, including hardware acceleration for RDP, stylus/touch support, and special character ligatures. These defaults are initialized to false, meaning these features are disabled by default unless explicitly enabled via AppContext configuration.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System · medium confidence

Default values for WPF AppContext switches are now explicitly defined

The PresentationFramework library now explicitly defines default values for various WPF AppContext switches, such as enabling the adorner for textbox selection rendering and disabling dynamic resource optimization by default. This ensures consistent behavior across different .NET target versions without requiring manual configuration.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/System · medium confidence

Enforce assembly versioning rules for WPF packaging

A new build validation step has been added to the WPF packaging process to ensure assembly versions are handled correctly during release and servicing builds. The system now distinguishes between assemblies that must remain at a fixed version (those in lib and ref directories) and those that must be incremented with every release (those in sdk/analyzers). This prevents breaking changes in servicing releases by verifying that specific assemblies do not have their versions revved unexpectedly.

packaging/Microsoft.DotNet.Wpf.GitHub · medium confidence

Exposes HeadingLevel and IsDialog automation properties

The UIAutomationClient reference assembly now includes the HeadingLevel and IsDialog automation properties on the AutomationElement class, enabling developers to programmatically access these accessibility attributes for UI elements.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClient/ref · high confidence

Generated code for WPF media effects is updated

The generated C\# files in the PresentationCore media effects namespace have been regenerated, introducing new implementations for classes such as BevelBitmapEffect, BlurEffect, and DropShadowEffect. This update includes updated property accessors and internal methods for these effects, ensuring the generated code aligns with the current code generation templates.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Effects/Generated · high confidence

Improved DPI awareness and scaling logic in WPF

The PresentationCore library now includes new internal helper classes to manage DPI awareness contexts and scaling more robustly. The \DpiAwarenessContextHelper\ and \DpiAwarenessScope\ classes provide mechanisms to query and temporarily modify the DPI awareness context of the current thread, supporting mixed-hosting scenarios. Additionally, \HwndDpiInfo\ and \WindowDpiScaleHelper\ improve the accuracy of window-specific DPI scale factors by falling back to the nearest monitor's DPI when direct window queries fail. These changes ensure that WPF applications handle high-DPI displays and multi-monitor setups with greater reliability and precision.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/DpiUtil · high confidence

Improved TrueType font subsetting to handle edge cases and prevent crashes

The TrueType font subsetting logic in WPF has been updated to improve stability and correctness. The \ComputeSubset\ method now checks for a \Switch.MS.Internal.TtfDelta.DisableDirectWriteForwarderBoundsCheckProtection\ AppContext switch to optionally disable bounds checking, and it explicitly handles the \ERR\_WOULD\_GROW\ error by returning the original font data instead of throwing a \FileFormatException\. Additionally, new header files (\fsassert.h\, \sfntoff.h\) and utility functions (\util2.cpp\) have been added to support the subsetting implementation and registry access.

src/Microsoft.DotNet.Wpf/src/DirectWriteForwarder/CPP/TrueTypeSubsetter · medium confidence

Improved startup performance and reduced memory allocations via lazy assembly loading and span usage

WPF now loads uncommon assemblies (such as System.Drawing, System.Xml, and System.Data) only when they are actually used, which improves startup time and reduces memory pressure. The internal \AssemblyHelper\ class now tracks loaded assemblies and loads extension assemblies on demand. Additionally, the \AvTrace\ logging system has been refactored to use \ReadOnlySpan\<T\>\ and other span-based APIs, which eliminates unnecessary string and array allocations during tracing. These changes optimize the runtime behavior of the WindowsBase library.

src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal · high confidence

Introduce build-time AppContext switch for markup compiler checksum algorithm

Added BuildTasksAppContextSwitches.cs and AppContextDefaultValues.cs to the PresentationBuildTasks project. The new BuildTasksAppContextSwitches class defines the 'Switch.System.Windows.Markup.DoNotUseSha256ForMarkupCompilerChecksumAlgorithm' AppContext switch. The AppContextDefaultValues class configures the default value for this switch based on the target framework: it is set to true for .NET Framework versions up to 4.7.1, and false for .NET Core. This allows the markup compiler to control whether SHA256 is used for checksums, with the default behavior changing depending on the target platform.

src/Microsoft.DotNet.Wpf/src/PresentationBuildTasks/MS/Internal, src/Microsoft.DotNet.Wpf/src/PresentationBuildTasks/System · high confidence

Localized resources for System.Printing and UIAutomationClient

Added localized resource files for the System.Printing and UIAutomationClient components, including the English source strings and translations for Czech, German, Spanish, and French.

src/Microsoft.DotNet.Wpf/src/System.Printing/Resources, src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClient/Resources · high confidence

Migrate DWrite font loading to managed C\# implementation

The DirectWrite font file and collection loaders have been migrated from C++/CLI to managed C\# classes (DWriteLoader, FontCollectionLoader, etc.). This change replaces the previous native/CLI bridge with a fully managed implementation for loading fonts, which improves maintainability and aligns with the broader effort to reduce native code dependencies in the text subsystem.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Text · high confidence

Migrate DWrite interop to managed C\# structs

The DWrite interop layer in PresentationCore has been migrated to managed C\# structs, replacing the previous implementation. This change introduces new internal interop definitions for DirectWrite, including the IDWriteFactory, IDWriteFontCollection, IDWriteFontCollectionLoader, IDWriteFontFace, IDWriteFontFile, IDWriteFontFileLoader, and IDWriteTextAnalyzer interfaces, along with supporting enums like DWRITE\_FONT\_FACE\_TYPE and DWRITE\_FONT\_SIMULATIONS. These structs define the vtable layouts and method signatures for calling into the native DirectWrite library, enabling the .NET WPF stack to interact with system fonts and text rendering services.

src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Interop/DWrite · high confidence

Modernize cross-compilation toolchains and rootfs builders

The cross-compilation infrastructure for Android and Tizen has been significantly updated. For Android, the default NDK version was upgraded from r14 to r21, and the minimum supported API level for arm64 was raised from 21 to 28 to ensure compatibility with modern system libraries like glob. The Android rootfs builder now supports configurable NDK versions and downloads dependencies from Termux repositories. For Tizen, the build scripts and patches were reorganized and updated to support additional architectures including RISC-V, and the toolchain patches were updated to use relative library paths instead of absolute ones. Additionally, legacy Ubuntu and Debian source lists for cross-compilation were removed.

eng/common/cross · high confidence

Refactor UI Automation client-side infrastructure

The UIAutomationClient module has been refactored to improve code quality and maintainability. Internal helper classes such as Accessible, AutomationAttributeInfo, AutomationPatternInfo, and AutomationPropertyInfo have been introduced or updated to manage automation metadata and state. The ClientEventManager and related queueing classes (CalloutQueueItem, ClientSideQueueItem) have been restructured to handle accessibility events and cache responses more robustly. Additionally, the BoundingRectTracker and CacheHelper classes have been added or modified to track window location changes and manage cache responses for UI Automation elements. These changes streamline the client-side processing of UI Automation events and properties.

src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClient/MS · high confidence

Regenerated PresentationCore generated files with modernized null-checks

The generated source files in PresentationCore (including ContentElement, UIElement, UIElement3D, TextDecoration, and related types) have been regenerated using MilCodeGen. This update modernizes the codebase by replacing manual null-checks with ArgumentNullException.ThrowIfNull, ensuring consistent argument validation across the generated API surface.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Generated · high confidence

Regenerated WPF PresentationCore media types via MilCodeGen

The generated source files in PresentationCore's Media and Media3D Generated directories have been regenerated using the MilCodeGen tool. This update introduces or refreshes the implementation of various media-related types, including enums (AlignmentX, AlignmentY, BitmapScalingMode, BrushMappingMode, CachingHint, ClearTypeHint), classes (ArcSegment, BezierSegment, BitmapCache, BitmapCacheBrush, Brush, CacheMode), and type converters (BrushConverter, CacheModeConverter). These changes update the underlying implementation of WPF's rendering and composition engine, ensuring consistency with the latest code generation templates.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Generated, src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media3D/Generated · high confidence

Regenerated WPF animation classes with modern null-checking

The generated source files in PresentationCore's animation namespace (such as Animatable, BooleanAnimationBase, and ByteAnimation) have been regenerated using the MilCodeGen tool. This update replaces manual null-argument checks with the modern ArgumentNullException.ThrowIfNull helper, standardizing how the framework validates parameters for animation methods like BeginAnimation and ApplyAnimationClock.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Animation/Generated · high confidence

Regenerated WPF imaging classes with updated code generation

The generated source files for WPF imaging classes (including BitmapImage, ColorConvertedBitmap, CroppedBitmap, FormatConvertedBitmap, and TransformedBitmap) have been regenerated using the MilCodeGen tool. This update applies style cleanups, corrects whitespace in the generated code, and ensures the files contain the proper license headers and accessibility modifiers, reflecting the latest state of the code generator.

src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/Generated · medium confidence

Relocate CI build and unit test scripts

The CI build and unit test scripts (CIBuild.cmd and CIUnitTest.cmd) have been moved to the eng/scripts directory. These Windows batch files invoke the common Build.ps1 script to handle the build, test, and CI execution steps.

eng/scripts · medium confidence

System.Xaml build and analysis configuration

The System.Xaml project now includes a Directory.Build.Props file that sets the IsWPF property to true, enabling WPF-specific build behaviors. Global suppressions for code analysis rules (such as naming, performance, and reliability warnings) have been added to GlobalSuppressions.cs, allowing the codebase to maintain compatibility with existing public API contracts and internal implementation details. Additionally, the solution file has been renamed from HelloWorld.sln to System.Xaml.sln, and the project configuration has been updated to support x64 and x86 build platforms, alongside a change in the project GUID to reflect the new name.

src/Microsoft.DotNet.Wpf/src/System.Xaml · high confidence

Update WPF project templates to support .NET 6.0 through .NET 11.0

The C\# and Visual Basic WPF project templates have been updated to support target frameworks from .NET 6.0 through .NET 11.0. The templates now include configuration files (dotnetcli.host.json) and localized string resources for multiple languages, and they conditionally apply modern C\# features like implicit usings and file-scoped namespaces for .NET 6.0 and newer versions.

packaging/Microsoft.Dotnet.Wpf.ProjectTemplates · high confidence

Updated System.Xaml implementation with modern C\# patterns and nullability support

The System.Xaml library has been updated to use modern C\# features, including nullable reference type annotations, ArgumentNullException.ThrowIfNull, and interpolated strings. The codebase also includes various style cleanups, such as using compound assignments, removing delegate allocations, and optimizing parsing and serialization of generic type names to decrease allocations. These changes improve code safety, performance, and maintainability within the XAML parsing and object graph handling components.

src/Microsoft.DotNet.Wpf/src/System.Xaml/System/Xaml · medium confidence

Updated WPF resource strings and localization files

The PresentationFramework library received updated localized string resources. The English source file (ExceptionStringTable.txt and Strings.resx) was refreshed with new and corrected error messages for various WPF components, including DocumentViewer, FlowDocumentScrollReader, and ScrollBar context menus. These changes are propagated to the corresponding XLIFF localization files for Czech, German, Spanish, and other languages, ensuring that user-facing error messages and UI text are up to date across all supported locales.

src/Microsoft.DotNet.Wpf/src/PresentationFramework/Resources · high confidence

Updated font fallback mappings for improved multilingual text rendering

The font fallback system in PresentationCore has been updated with new composite font definitions (GlobalMonospace, GlobalSansSerif, GlobalSerif, and GlobalUserInterface) that map a broader range of Unicode character sets to specific fonts. This change, which includes the addition of the 'simsun-extg' font to support additional characters, ensures that text in various languages and scripts renders correctly by selecting the appropriate fallback fonts. Users will see improved text display for diverse scripts, including those previously unsupported or poorly supported.

src/Microsoft.DotNet.Wpf/src/PresentationCore/Fonts · high confidence

Updated shared build infrastructure scripts from the .NET Arcade SDK

The files in the eng/common directory have been updated to match the latest contents from the dotnet/arcade repository. This includes new or updated scripts for .NET SDK installation (dotnet-install, dotnet), NuGet source configuration (SetupNugetSources), internal feed operations, and pipeline logging functions. These changes ensure the repository's build system stays synchronized with the shared .NET build infrastructure.

eng/common · high confidence

WPF core library initialization and build configuration updates

PresentationCore now initializes the process DPI awareness and loads the DirectWrite forwarder earlier via a module constructor, ensuring DPI settings are applied before any sensitive operations. The library also includes new build configuration, global using directives for shared clipboard and data format code, and linker trim directives for dependencies like System.Diagnostics.Debug and mscorlib. Additionally, trace message definitions for RoutedEvent and Animation events have been added to support diagnostic tracing.

src/Microsoft.DotNet.Wpf/src/PresentationCore · medium confidence

Fixes

Hardened TrueType subsetter against integer overflows and memory errors

The TrueType font subsetter in WPF now includes extensive bounds checking and overflow protection for native C++ code. New header files (intsafe\_private\_copy.h) provide safe arithmetic and memory allocation wrappers to prevent integer overflows and memory errors during font processing. The subsetter functions (automap, makeglst, modcmap, modglyf, modsbit, modtable) now use these safe wrappers and explicit checks to ensure that glyph indices, offsets, and array sizes are validated before use, preventing potential crashes or memory corruption when processing malformed or large font files.

src/Microsoft.DotNet.Wpf/src/DirectWriteForwarder/CPP/TrueTypeSubsetter/TtfDelta · high confidence

Test coverage

Add unit tests for System.Xaml and Windows.Markup components; Added DRT test infrastructure and utilities; Added test infrastructure for PresentationCore; Added test infrastructure for WindowsBase unit tests; Added test utilities for binary serialization; Added unit tests for BrushConverter; Added unit tests for Fluent theme resource dictionaries; Added unit tests for PrintStringProperty; Added unit tests for WPF clipboard, data object, and converter classes; Added unit tests for WPF components; Added unit tests for WPF geometry types; Added unit tests for WPF imaging classes; Added unit tests for WPF input converters; Added unit tests for WindowsBase event managers and component model classes.

Dependencies

Update WPF dependencies from dotnet/arcade

The WPF project has updated its dependencies from the dotnet/arcade repository. This includes updates to the build infrastructure and tooling, ensuring the project remains compatible with the latest .NET build system components.

(repo-wide) · high confidence

Update build dependencies from dotnet/winforms, dotnet/arcade, and dotnet/dotnet

The project's build system dependencies have been updated to the latest builds from the dotnet/winforms, dotnet/arcade, and dotnet/dotnet repositories. This includes syncing with the latest versions of the .NET build infrastructure, ensuring the project uses the most recent tooling and SDK components for compilation and testing.

eng · high confidence

WPF project templates and build infrastructure updated for modern .NET

The WPF project templates have been updated to support modern .NET versions (net5.0, net6.0, and netcoreapp3.1), with C\# templates now including implicit usings and nullable reference types by default. The build infrastructure has been reorganized into new packaging projects (e.g., Microsoft.DotNet.Arcade.Wpf.Sdk.ArchNeutral) and cycle-breaker projects to resolve assembly reference cycles. Additionally, the internal tools project (Tools.csproj) was added to manage build-time dependencies like Microsoft.ManifestTool.CrossPlatform and MicroBuild plugins.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 69.

Lenses

  • Architecture 93
  • Maturity 69
  • Readiness 62
  • Security 77

Changes since last survey

  • 300 commits — 276 feature/other, 24 fixes

By area

  • (root) — 100 commits
  • src/Microsoft.DotNet.Wpf — 67 commits
  • eng/Version.Details.props — 50 commits
  • eng/common — 50 commits
  • eng/Version.Details.xml — 9 commits
  • (repo) — 7 commits
  • eng/Versions.props — 5 commits
  • packaging/Microsoft.Dotnet.Wpf.ProjectTemplates — 3 commits
  • .github/CODEOWNERS — 2 commits
  • eng/WpfArcadeSdk — 2 commits
  • .azuredevops/dependabot.yml — 1 commit
  • .github/policies — 1 commit
  • Documentation/developer-guide.md — 1 commit
  • eng/helixpublish.proj — 1 commit
  • eng/pipeline.yml — 1 commit

Notable commits

  • fix: Fix .Net 10 SDK build issue when using internal members (#11289)
  • fix: Fix ComboBox popup content to allow grouping in Fluent (#10878)
  • fix: Fix Fluent in Windows 10 (#11341)
  • fix: Fix an InvalidOperationException when WeakEventTable.Purge is called … (#11521)
  • fix: Fix crashes in TextBox(es) in Fluent theme (#10841)
  • fix: Fix potential issues in WPF Native Code (#11797)
  • fix: Fix potential overflow issues in WPF native code (#11642)
  • fix: Fix(Fluent): TextBox invalidation style (#10887)
  • fix: Fix: Plausible Exception while closing an Application (#10631)
  • fix: Fixed AutomationProperties.Name for DatePicker Button (#10949)
  • fix: Fixed ComboBox style and template (#10818)
  • fix: Fixed DataGrid Column Header issues (#10912)
  • fix: Fixed DataGrid column header text color in HC mode (#10956)
  • fix: Fixed TabItem MinWidth issue (#10865)
  • fix: Fixed ToolTip Fluent Style and Resources (#10863)
  • fix: Fixes arrow direction for expander when FlowDirection is set to RightToLeft (#10804)
  • fix: Fixes layout issues in RichTextBox style for Fluent theme (#10793)
  • fix: Fixes the layout and resource usage for PasswordBox (#10768)
  • fix: Replace ArrayList in InputProcessorProfiles with fixed-size array, reduce allocations (#9946)
  • fix: Revert "Fix unit tests native dependencies (#10338)" (#10919)
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

dotnet/wpf was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 5 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit b5d953c77a948fbce344787f7480d419fd853334 — the exact code this score is about.
  • Scored under rubric-2026.08.19 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer latest.