Windows Presentation Foundation (WPF)
Windows Presentation Foundation (WPF) is a UI framework for building Windows desktop applications. WPF supports a broad set of application development features, including an application model, resources, controls, graphics, layout, data binding and documents. WPF uses the Extensible Application Markup Language (XAML) to provide a declarative model for application programming.
WPF applications are based on a vector graphics architecture. This enables applications to look great on high DPI monitors, as they can be infinitely scaled. WPF also includes a flexible hosting model, which makes it straightforward to host a video in a button, for example. The visual designer provided in Visual Studio makes it easy to build WPF application, with drag-in-drop and/or direct editing of XAML markup.
See the WPF Roadmap to learn about project priorities, status and ship dates.
WinForms is another UI framework for building Windows desktop applications that is supported on .NET Core. WPF and WinForms applications only run on Windows. They are part of the
Microsoft.NET.Sdk.WindowsDesktop SDK. You are recommended to use Visual Studio 2019 to use WPF and WinForms with .NET Core.
- .NET Core 3.0 SDK
- Getting started instructions
- Contributing guide
- Migrating .NET Framework WPF Apps to .NET Core
We are in the process of doing four projects with WPF:
- Port WPF to .NET Core.
- Publish source to GitHub.
- Publish (and in some cases write) tests to GitHub and enable automated testing infrastructure.
- Enable the Visual Studio WPF designer to work with WPF running on .NET Core.
We have completed porting WPF to .NET Core as part of .NET Core 3.0, you can learn more about what was done here.
We have published the vast majority of the WPF source. We will continue to publish WPF components through the rest of 2019.
See the WPF roadmap to learn about the schedule for specific WPF components.
We have published few tests and have limited coverage for PRs at this time as a result. We will add more tests in 2019 and 2020, however, it will be a progressive process.
The Visual Studio WPF designer is now available as part of Visual Studio 2019.
How to Engage, Contribute and Provide Feedback
Some of the best ways to contribute are to try things out, file bugs, join in design conversations, and fix issues.
- This repo defines contributing guidelines and also follows the more general .NET Core contributing guide.
- If you have a question or have found a bug, file an issue.
- Use daily builds if you want to contribute and stay up to date with the team.
.NET Framework issues
Relationship to .NET Framework
This code base is a fork of the WPF code in the .NET Framework. .NET Core 3.0 was released with a goal of WPF having parity with the .NET Framework version. Over time, the two implementations may diverge.
The Update on .NET Core 3.0 and .NET Framework 4.8 provides a good description of the forward-looking differences between .NET Core and .NET Framework.
This update states how going forward .NET Core is the future of .NET. and .NET Framework 4.8 will be the last major version of .NET Framework.
Code of Conduct
This project uses the .NET Foundation Code of Conduct to define expected conduct in our community. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project maintainer at firstname.lastname@example.org.
Reporting security issues and security bugs
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) email@example.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.
Also see info about related Microsoft .NET Core and ASP.NET Core Bug Bounty Program.
.NET Core (including the WPF repo) is licensed under the MIT license.
.NET Core WPF is a .NET Foundation project.
See the .NET home repo to find other .NET-related projects.