README.md
June 23, 2026 ยท View on GitHub
Custom Avalonia Themes developed by Devolutions
DevExpress Theme [Work in Progress]
This theme is currently based on Avalonia.Themes.Fluent, both as a fallback for any controls not covered yet and as starting point for our (somewhat simplified) style definitions targeting DevExpress Winforms look.
While we are prioritizing controls for Devolutions Remote Desktop Manager, we welcome contributions from the Avalonia community to add more DevExpress-style controls.
- Installation
- Styled Controls
- โ Available in the current build
- ๐ง In progress ...
- small improvements & fixes, some code cleanup
- ContextMenu
- SplitButton
- ๐ฎ Next on the road map ...
- vertical tabs
Installation
Avalonia 12 required. Packages
2026.6.17-avalonia12and later require Avalonia 12. The last stable release compatible with Avalonia 11 is2026.6.16.
Install the Devolutions.AvaloniaTheme.DevExpress package via NuGet:
Install-Package Devolutions.AvaloniaTheme.DevExpress
or .NET
dotnet add package Devolutions.AvaloniaTheme.DevExpress
In your App.axaml, replace the existing theme (e.g. <FluentTheme /> or <SimpleTheme />) with the DevExpress theme:
<Application ...>
<Application.Styles>
<DevolutionsDevExpressTheme />
</Application.Styles>
</Application>
Note: Some global Styles will also be loaded by default, you can opt out by setting GlobalStyles to false (<DevolutionsDevExpressTheme GlobalStyles="False" />). GlobalStyles are also available as a separate tag <DevolutionsDevExpressThemeGlobalStyles /> to cover scenarios where consumers would like to scope them to some control instead of including them globally. This is may be necessary to prevent styles from "bleeding out" in cases where that might be undesirable.
Styled Controls
Most of the images below are screenshots from the SampleApp test and demo pages - feel free to check out the code there for more detailed usage examples.
For an always up-to-date visual reference you can also browse the baseline screenshots.
AdornerLayer | |
| โ | AutoCompleteBox |
โก๏ธ See also EditableComboBox in our custom controls | |
| โ | Button |
| โ | CalendarDatePickerCalendarCalendarItemCalendarButtonCalendarDayButton |
Note: MinWidth is set to comfortably accommodate short date formats & the corresponding default watermark when HorizontalAlignment is set to anything other than the default (Stretch).If you set SelectedDateFormat="Long" you will have to override MinWidth to the longest expected string length, depending on supported languages. Otherwise the control's width will jump when the date is changed. | |
CaptionButtons | |
Carousel | |
| โ | CheckBox |
| โ | ColorPicker |
| โ | ComboBoxComboBoxItem |
| ๐ง | ContextMenu |
| โ | DataGrid |
DataValidationErrors | |
DatePicker | |
DateTimePickerShared | |
DropDownButton | |
| โ | EditableComboBox(Custom control) |
EmbeddableControlRoot | |
| โ | Expander |
FluentControls | |
FlyoutPresenter | |
GridSplitter | |
HeaderedContentControl | |
HyperlinkButton | |
ItemsControl | |
Label | |
| โ | ListBoxListBoxItem |
ManagedFileChooser | |
Menu | |
MenuFlyoutPresenter | |
MenuItem | |
MenuScrollViewer | |
NotificationCard | |
| โ | NumericUpDownButtonSpinner |
OverlayPopupHost | |
PathIcon | |
PopupRoot | |
ProgressBar | |
| โ | RadioButton |
RefreshContainer | |
RefreshVisualizer | |
RepeatButton | |
| โ | ScrollViewerScrollBar |
SelectableTextBlock | |
| โ | Separator |
Slider | |
SplitButton | |
SplitView | |
| โ | TabControlTabItem |
| โ | TabPane(Custom control) |
TabStrip | |
TabStripItem | |
| โ | TagInput(Custom control (Ursa)) |
| Input control for managing tags (keywords, labels, recipients). Supports adding/removing tags, separators, max count, duplicate prevention. | |
| โ | TextBox |
TextSelectionHandle | |
ThemeVariantScope | |
TimePicker | |
TitleBar | |
ToggleButton | |
ToggleSwitch | |
ToolTip | |
TransitioningContentControl | |
| โ | TreeViewTreeViewItem |
| โ | Window |
| Controls inherit basic DevEx-specific Fore-/Background & Font styling (or EmbeddableControlRoot) | |
WindowNotificationManager | |