Back to Devexpress

Migrate WPF Applications to ASP.NET Core Blazor

wpf-405568-dotnet-core-support-migrate-from-wpf-to-blazor.md

latest20.9 KB
Original Source

Migrate WPF Applications to ASP.NET Core Blazor

  • Sep 26, 2025
  • 6 minutes to read

When you migrate a WPF application to ASP.NET Core Blazor, you can reuse the data layer and business logic, but you need to reconstruct the UI from scratch. This article contains the following information:

  • Resources that describe migration in general and application architecture choices that facilitate the transition.
  • Tables that list DevExpress WPF controls and their DevExpress Blazor counterparts.

Why Use DevExpress UI Controls for Blazor

The DevExpress Blazor Component Suite ships with components and development libraries for Blazor Server, Blazor WebAssembly, and Blazor Hybrid hosting models. The suite includes a comprehensive set of UI controls, such as Data Grid, Pivot Grid, Scheduler, Chart, Data Editors, and Reporting. Review the complete list of available components in our documentation.

DevExpress Blazor Components can be purchased as part of the following DevExpress subscriptions: ASP.NET and Blazor (includes DevExtreme), DXperience , and Universal.

Run DemoDownload: Free 30-Day Trial

How to Migrate a Project: Useful Resources

For information on how to migrate your project to a different platform, review the following resources:

DevExpress UI Components: Equivalents for Different Platforms

Most of our product lines contain similar component sets. Regardless of the platform, developers usually require the same UI controls for their business apps and websites.

Tables below list DevExpress WPF components and their DevExpress Blazor equivalents (or ways to implement similar functionality).

Data Grids

WPF ComponentBlazor Component
GridControlDxGrid or DxTreeList
TreeListControlDxTreeList
PropertyGridControl
GanttControlConsider integrating DevExtreme Gantt.

Data Binding

Refer to the following help topics for information on binding DevExpress Blazor controls to data:

If our standard data source bindings do not meet your business requirements, you can implement your own data provider. Refer to the following example for implementation details: Blazor Grid - Custom Data Source Binding using Entity Framework Core.

Export to CSV, PDF, and XLS/XLSX

WPF Grid and TreeList controls use the same internal export engine as their Blazor counterparts. Public API names may differ. Refer to the following documentation section for Blazor equivalents:

Item Selectors

WPF ComponentBlazor Component
ListBoxEditDxListBox<TData, TValue>
ComboBoxEdit, AutoSuggestEditDxComboBox<TData, TValue>
LookUpEdit (SearchLookUpEdit, MultiSelectLookUpEdit)Based on required functionality, use one of the following options:
  1. Use DxComboBox<TData, TValue> with columns.
  2. Place DxGrid into DxDropDownBox.DropDownBodyTemplate (see Demo). | | TokenLookUpEdit | DxTagBox<TData, TValue> | | FontEdit | DxComboBox<TData, TValue> or DxDropDownBox (see Demo). |

Data Input Editors

WPF ComponentBlazor Component
ButtonEditCommand buttons.
BrowsePathEdit
CheckEditDxCheckBox<T>
MemoEditDxMemo embedded into DxDropDownBox.
SpinEditDxSpinEdit<T>
TextEditDxTextBox
ToggleSwitchEditDxCheckBox<T> in switch mode.
PasswordBoxEditDxTextBox in password mode.

Date and Time Editors

WPF ComponentBlazor Component
DateEditDxDateEdit<T>
DateNavigatorDxCalendar<T>
DateRangeControlDxDateRangePicker<T>
TimePickerDxTimeEdit<T>

Image and Color Editors

WPF ComponentBlazor Component
ImageEdit[](https://www.w3schools.com/html/html_images.asp) tag[1]. Editing operations are unavailable.
PopupImageEdit[](https://www.w3schools.com/html/html_images.asp) tag[1] embedded into DxDropDownBox.
BrushEdit, ColorEditDxColorPalette
PopupBrushEdit, PopupColorEditDxColorPalette embedded into DxDropDownBox (see Demo).

Buttons

WPF ComponentBlazor Component
SimpleButtonDxButton
DropDownButtonDxDropDownButton
SplitButtonDxSplitButton
WPF ComponentBlazor Component
AccordionControlDxAccordion
NavBarControlDxAccordion or DxTreeView
OfficeNavigationBarDxMenu
TileNavPane
TileBar
TreeViewControlDxTreeView
Wizard
HamburgerMenuDxMenu in a mobile view with a horizontal orientation.

Ribbon, Bars & Menu

WPF ComponentBlazor Component
BarManagerReplicate each Bar and its items with a DxToolbar or DxMenu.
ToolBarControl, MainMenuControlDxToolbar
RibbonControlDxRibbon
DXContextMenu (PopupMenu, PopupControlContainer)DxContextMenu or DxDropDown

Layout Controls

WPF ComponentBlazor Component
DockLayoutManager
LayoutControl, DataLayoutControlDxFormLayout
TileLayoutControl
DockLayoutControlDxGridLayout or DxSplitter
FlowLayoutControl
DXTabControlDxTabs
FlipViewDxCarousel
PageViewDxTabs

Dialogs, Notifications, and Panels

WPF ComponentBlazor Component
ThemedWindowDxFormLayout inside a DxPopup or DxWindow
MessageBoxService, ThemedMessageBoxDxMessageBox
WinUIMessageBoxDxMessageBox
DXOpenFileDialog, DXSaveFileDialogDxFileInput, DxUpload
DXFolderBrowserDialog
FlyoutControlDxFlyout
NotificationServiceDxToast
WinUIDialogWindowDxPopup or DxWindow

Visualization Controls

WPF ComponentBlazor Component
ProgressBarEditDxProgressBar
SparklineEditDxSparkline
TrackBarEdit, Range ControlUse DxRangeSelector if you need two sliders. For one slider, consider integrating DevExtreme Slider.
RatingEdit

Utility Controls

WPF ComponentBlazor Component
HyperlinkEdit<a> tag
FlyoutControlDxFlyout
Splash Screens, Wait IndicatorDxLoadingPanel, DxWaitIndicator
LoadingDecoratorDxLoadingPanel
BadgeConsider integrating Bootstrap Badge.
StepProgressBar
BarCodeEditGenerate bar codes using Office File API[2] and display them within the `` tag.
Calculator, PopupCalcEdit

Office-Inspired Controls

WPF ComponentBlazor Component
RichEditControlDxRichEdit
SchedulerControlDxScheduler
SpreadsheetControl
SpellChecker
Office File APIUse the same APIs[2].

Reporting and Analytics

WPF ComponentBlazor Component
PdfViewerControlDxPdfViewer
PivotGridControlDxPivotTable
Visual Studio Report DesignerDxReportViewer
End-User Report DesignerDxReportDesigner
Dashboard Viewer, Dashboard DesignerBlazor Dashboard (includes both Designer and Viewer)

Data Visualization

WPF ComponentBlazor Component
Charts SuiteDxChart<T>, DxPieChart<T>, DxPolarChart<T>
DiagramDesignerControlConsider integrating DevExtreme Diagram.
Gauge ControlsDxBarGauge. Consider integrating DevExtreme Circular Bar Gauge (see Example).
MapControlDxMap
TreeMapControlConsider integrating DevExtreme TreeMap.
SunburstControl
SankeyDiagramControlDxSankey
HeatmapControl

Concepts

WPF ConceptBlazor Concept
Application Themes, Lightweight ThemesStyling and Themes
MVVM SupportAlthough you can implement the MVVM pattern in your Blazor app, this approach is not common for Blazor. Refer to online resources to choose the best option based on your requirements.
Input ValidationValidate Input
Masked InputMasks
AI-powered Extensions for WPFDevExpress AI-powered Extensions for Blazor

Inplace editors

Blazor Grid and TreeList use a similar column editor architecture that allows you to generate editors based on data field type. You can also specify custom cell templates, that is, display custom components or HTML markup in cells. Refer to the following help topics for more information:

WPF Bar Manager and Ribbon Control ship with a specially designed editor container item - BarEditItem. In Blazor, the editor integration technique depends on the container control. Use the following resources to find instructions:

Have a Question?

If you have additional technical questions about migration between UI platforms within the DevExpress ecosystem, feel free to contact us: DevExpress Support Center.

Footnotes

  1. Example: ``.

  2. You need a DevExpress Office File API Subscription or DevExpress Universal Subscription license to use this library in production code.