Yes you read the title right in this blog we’ll talk about creating WPF applications using Xamarin.Forms 🙂 a little background first. Microsoft build one of the biggest developer conference organized by Microsoft happened in Seattle last week where Xamarin team released the stable version of Xamarin.Forms 3.0. One of one of the features this release has that it supports for WPF windows desktop applications using Xamarin.Forms. In this blog i will give you step by step guide on how to add WPF application in your Xamarin.Forms application solution and then do the changes in it to to use Xamarin.Forms controls in WPF.
As WPF works only on Windows so 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 following project structure which will have a .Net standard project, iOS project, Android project and UWP project if you have you UWP SDK installed and you 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 latest version that is 3.0. In my case since I have already updated it’s shown in 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 following window, where you have to click on Windows Desktop option in 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 below screenshots.
- Once 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 below screenshot
In MainWindow.xaml file of WPF application change the root node from Window to wpf:FormsApplicationPage and add xmlns:wpf=”clr-namespace:Xamarin.Forms.Platform.WPF;assembly=Xamarin.Forms.Platform.WPF” in namespace declarations as shown in below image
In MainWindow.xaml.cs file of WPF application add following two using directives
and change the parent class from Window to FormsApplicationPage and add following two lines of code in the constructor
These two lines will initialize Xamarin.Forms and loan 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. Will be Coming up with more such articles in near future
🙂 🙂 🙂 🙂 Happy Coding 🙂 🙂 🙂 🙂