Yes, you read the title right! In this blog, we’ll talk about creating WPF applications using
Xamarin.Forms - a little background first. One of the biggest developer conferences organized by Microsoft happened in Seattle last week where Xamarin team released the stable version of Xamarin.Forms 3.0. One of the features this release has that it supports WPF windows desktop applications using
Xamarin.Forms. In this blog, I will give you a step by step guide on how to add WPF application in your
Xamarin.Forms application solution and then make the changes in it to use
Xamarin.Forms controls in WPF.
As WPF works only on Windows, all our steps will be done in Visual Studio 2017 15.7 version on Windows.
- Create is new
Xamarin.Forms project by clicking on new project => cross platform
Xamarin.Forms blank application using .NET standard, you will get the following project structure which will have a .NET standard project, iOS project, Android project and UWP project if you have your UWP SDK installed and are working on Windows 10.
- Now right click on the solution file and select the option “Manage nuget packages for Solution” from popup menu. On manage nuget packages window, go to updates tab and update your
Xamarin.Forms package to the latest version that is 3.0. In my case, since I have already updated, it’s shown in the installed tab.
- Close the Nuget Package Manager window, right click on the solution file again and select Add => New Project option from the popup menu, it will open the following window, where you have to click on Windows Desktop option in the left window and select WPF App (.NET Framework) like I have done. Give the name to the project and click Ok.
- Once the project is created, right click on WPF project file in Solution Explorer and select “Manage nuget Packages” from popup menu. On “Manage nuget Packages” window, click on Browse Tab, Install
Xamarin.Forms nuget Package to the project. then select the include prerelease checkbox, browse for “
Xamarin.Forms.Platform.WPF” and click on install button as highlighted in the below screenshots:
Xamarin.Forms.Platform.WPF is installed, close the Nuget Package Manager window, right click on References of WPF project and select Add Reference option from popup menu to add the reference of .NET Standard Project from the Projects => Solution option in the window as highlighted in the below screenshot:
- In MainWindow.xaml file of WPF application, change the root node from
wpf:FormsApplicationPage and add
namespace declarations as shown in the below image:
- In MainWindow.xaml.cs file of WPF application, add the following two using directives
and change the parent class from
FormsApplicationPage and add following two lines of code in the constructor:
These two lines will initialize
Xamarin.Forms and load the
Xamarin.Forms app created in .NET Standard project. Below is the screenshot highlighting the code differences:
- Your WPF application using
Xamarin.Forms is now ready to execute. This is how it will look once executed.
Please keep in mind that
Xamarin.Forms.Platform.WPF is still in pre-release so all the features of
Xamarin.Forms will not be available in it, to get the complete list of available features, use this link
You can get the complete solution code from here. Let me know if I have missed anything or you want to know about anything in particular related to
Xamarin.Forms development. I will be coming up with more such articles in the near future.