Harmonizing Powerhouses: Syncfusion WPF Controls Are Now Compatible with Avalonia XPF
Detailed Blog page Skeleton loader
Syncfusion WPF Controls Are Now Compatible with Avalonia XPF

TLDR: Syncfusion WPF Controls now support Avalonia XPF, enabling seamless cross-platform development. Learn to integrate controls, update SDK, add package sources, include the license key, and run apps on Windows, Linux, and macOS.

In the dynamic landscape of cross-platform development, choosing compatible tools and frameworks can be a game-changer for developers. We’re happy to announce that Syncfusion WPF controls are now compatible with Avalonia XPF!

 Avalonia XPF is a cross-platform WPF framework. It is supported in major platforms, including Windows, macOS, and Linux (desktop and embedded). Support in WebAssembly, iOS, and Android will be available in 2024.

The Syncfusion WPF control suite is a package of over 90 modern WPF UI controls, 50+ WPF charts, and a collection of document processing libraries that lets developers build beautiful, high-performance line-of-business WPF apps. Combining the power of Avalonia XPF with Syncfusion WPF apps opens up new dimensions for developers.

In this blog, we’ll explore the intricacies of achieving compatibility between Syncfusion WPF controls and Avalonia XPF, providing developers with the ability to leverage the strengths of both frameworks.

Avalonia XPF – A cross-platform gem

Avalonia XPF’s robust architecture and XAML-based markup offer a development experience similar to WPF and Xamarin. The framework’s support for styling, theming, and native interop makes it an enticing choice for developers wanting to target multiple platforms without compromising the user experience.

Integrating Syncfusion WPF controls with Avalonia XPF

Follow these steps to create an app with Syncfusion WPF controls and Avalonia XPF. We’re going to use the Syncfusion WPF DataGrid control for demo purposes.

Step 1: Create a WPF application using Visual Studio with .NET 7.0(Standard Term Support).

Note: Avalonia XPF supports .NET 6 and higher versions.

Step 2: Create or modify the existing NuGet.config file to include the following necessary package sources.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <packageSources>
  <clear />
   <add key="api.nuget.org" value=https://api.nuget.org/v3/index.json />
   <add key="xpf" value=https://xpf-nuget-feed.avaloniaui.net/v3/index.json />
   <add key="avalonia-nightly" value=https://nuget-feed-nightly.avaloniaui.net/v3/index.json />
 </packageSources>
 <packageSourceCredentials>
  <xpf>
   <add key="Username" value="Enter the Username" />
   <add key="ClearTextPassword" value="Enter the Password" />
  </xpf>
 </packageSourceCredentials>
</configuration>

Note: Kindly use the credentials given by Avalonia XPF.

Step 3: Update the SDK in your WPF project to use the XPF SDK in the .csproj file. Refer to the following code.

<Project Sdk="Microsoft.NET.Sdk"> to <Project Sdk="Xpf.Sdk/1.0.1-cibuild001295>

Step 4: Include the required license key in the .csproj file.

<PropertyGroup>
 <EnableWindowsTargeting>true</EnableWindowsTargeting>
</PropertyGroup>

<ItemGroup>
 <RuntimeHostConfigurationOption Include="AvaloniaUI.Xpf.LicenseKey" Value="Enter the LicenseKey" />
</ItemGroup>

Note: Kindly use the license key from Avalonia XPF.

Step 5: Then, clean the existing build artifacts using any one of the following methods:

  • Run the command dotnet clean from the command prompt.
  • Use the Build -> Clean Solution option in your project.
  • Delete your bin/obj directories manually.

Step 6: Ensure the output type in the .csproj file is set to WinExe.

(E.g., <OutputType>WinExe</OutputType>).

Let’s see how to run the created WPF app on various platforms.

To run the app in Windows OS

Follow these steps to run the created WPF app in a Windows environment:

Step 1: Open the WPF app in Visual Studio.

Step 2: Click the Debug menu.

Step 3: Select Start Debugging to run the app.

Now, it will run the WPF app properly on Windows.

Steps to run the WPF app in Linux OS or macOS

Prerequisites to run the app on macOS

  • Access to a Mac machine (either physical or via remote access).
  • .NET 7 SDK
  • Visual Studio Code or JetBrains Rider (JetBrains works similarly to Visual Studio. If you don’t have the required license, you can use Visual Studio Code.)

For Visual Studio Code, ensure the following extensions are installed:

Let’s follow these steps to run the app on Linux or macOS:

Step 1: Choose a Linux (preferably Ubuntu)/MacOS machine.

Step 2: Then, open Visual Studio Code or JetBrains Rider.

Step 3: Click File-> open Folder to browse and select the WPF app created using Avalonia XPF, SfDataGridDemo.

Step 4: Right-click the project file and choose Debug from the context menu. Refer to the following image.Select Debug option

Step 5: Click Start New Instance to run the app.Choose Start New Instance option

Now, the app will run properly on Linux OS or macOS.

Refer to the following output image.Uniting Syncfusion WPF Controls with Avalonia XPF

GitHub reference

For more details, refer to the Avalonia XPF Compatibility with Syncfusion WPF DataGrid GitHub demo .

Conclusion

Thanks for reading! This blog delved into the exciting new compatibility between Syncfusion WPF controls and Avalonia XPF, opening up a world of possibilities for cross-platform development on Windows, Linux, and macOS. By integrating these powerful frameworks, developers can craft versatile, high-performance apps with minimal configuration.

We encourage you to follow the steps provided in this blog and share your feedback in the comments section below.

If you need assistance, please do not hesitate to contact us through our support forumsupport portal, or feedback portal. We are always ready and willing to help you!

Relate blogs

Be the first to get updates

Gayathri Ramalingam

Meet the Author

Gayathri Ramalingam

Gayathri is a software engineer at Syncfusion who has specialized skills in file format products and Xamarin controls. In 2015, she started her career at Syncfusion as a software developer and has since become an avid technology enthusiast.

Comments (2)

Any chance of supporting Avalonia directly (without XPF) ? Avalonia is closer to Flutter in design than MAUI, has more platforms and appears to be more stable.

Gayathri Ramalingam
Gayathri Ramalingam
@ Andrew Tierney  

Hi ANDREW,

At the moment, we don’t have plans to support Avalonia UI framework directly. However, we’ll keep an eye on its popularity, user adoption, and requests. Depending on these factors, we may consider it in the future.

Regards,
Gayathri R

Comments are closed.