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.Form
s. 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:
- 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 the 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 the below image:
- In MainWindow.xaml.cs file of WPF application, add the following two using directives
using Xamarin.Forms;
using Xamarin.Forms.Platform.WPF;
and change the parent class from Window
to FormsApplicationPage
and add following two lines of code in the constructor:
Forms.Init();
LoadApplication(new TrXamGuide.App());
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.
Happy coding!!!