Getting started with WPF for .NET Core
This document describes the experience of using WPF on .NET Core. The Developer Guide describes how to develop features and fixes for WPF.
Choose one of these options:
- .NET Core 3.0 SDK Preview 1 (recommended)
- .NET Core 3.0 daily build (latest changes, but less stable)
Creating new applications
You can create a new WPF application with
dotnet new command, using the new templates for WPF.
In your favorite console run:
dotnet new wpf -o MyWPFApp cd MyWPFApp dotnet run
For WPF API documentation, see the .NET API Browser.
For conceptual documentation (architecture, how-tos, etc.) most of the documentation for WPF for .NET Framework applies equally well to WPF for .NET Core 3. The main differences are around project structure and lack of Designer support.
- WPF Applications crash with
System.TypeLoadExceptionwhen the Visual C++ Redistributable for Visual Studio 2017 is not installed. The latest version of VC++ redistributable can be obtained from the Visual C++ downloads page. This dependency will be removed prior to .NET Core 3.0 final release.
- This is tracked by #37.
- WPF Applications crash with 'Module not found' with a stack originating from wpfgfx_cor3.dll (see #167). This is due to a dependency on d3d_compiler.dll added in .NET Framework 4.7. The workarounds linked here will fix this issue. This dependency will be handled prior to .NET Core 3.0 final release.
- This is tracked by #189
- In this initial preview, WPF for .NET Core doesn't support the XAML Designer. If you want to use the XAML Designer, you will need to do that in the context of a .NET Framework project, e.g. by linking your .NET Core source files into a .NET Framework project.
- You can see examples of how to do this in the WPF Samples repo.
- XAML Browser applications (XBAPs) are not supported for .NET Core 3.
- Not all .NET Framework features are supported for .NET Core 3. You can use the .NET API Portability Analyzer to see if your existing code can run on .NET Core 3.
A full list of supported / unsupported features will be available in a future update.