UI Controls Comparison
Below is a comparison of Xamarin.Forms controls with Windows Forms and WPF, based on this table.
Read more about the similarities and differences between WPF and Xamarin.Forms to help update your desktop knowledge for mobile app development.
Windows Forms | WPF | Xamarin.Forms |
---|---|---|
BindingNavigator | - | - |
BindingSource | CollectionViewSource | Binding property, eg. BindingContext |
Button | Button | Button |
CheckBox | CheckBox | Switch |
CheckedListBox | ListBox with composition. | ListView with composition. |
ColorDialog | - | - |
ComboBox | ComboBox (does not support auto-complete) | Picker |
ContextMenuStrip | ContextMenu | - |
DataGridView | DataGrid | - |
DateTimePicker | DatePicker | DatePicker & TimePicker |
DomainUpDown | TextBox and two RepeatButton controls. | Stepper |
ErrorProvider | - | - |
FlowLayoutPanel | WrapPanel or StackPanel | StackLayout or FlexLayout |
FolderBrowserDialog | - | - |
FontDialog | - | - |
Form | Window | Page |
GroupBox | GroupBox | - |
HelpProvider | No equivalent control (use ToolTips). | - |
HScrollBar | ScrollBar (Scrolling is built into container controls) | use ScrollView |
ImageList | - | - |
Label | Label | Label |
LinkLabel | No equivalent control (you can use the Hyperlink class to host hyperlinks within flow content). | - |
ListBox | ListBox | Use ListView |
ListView | ListView | ListView |
MaskedTextBox | - | - |
MenuStrip | Menu | Consider MasterDetailPage or TabbedPage |
MonthCalendar | Calendar | - |
NotifyIcon | - | - |
NumericUpDown | TextBox and two RepeatButton controls. | Stepper |
OpenFileDialog | OpenFileDialog | - |
PageSetupDialog | - | - |
Panel | Canvas | View or AbsoluteLayout |
PictureBox | Image | Image |
PrintDialog | PrintDialog | - |
PrintDocument | - | - |
PrintPreviewControl | DocumentViewer | - |
PrintPreviewDialog | - | - |
ProgressBar | ProgressBar | ProgressBar |
PropertyGrid | - | - |
RadioButton | RadioButton | - |
RichTextBox | RichTextBox | Editor does not support rich (formatted) text, Entry for single line text |
SaveFileDialog | SaveFileDialog | - |
ScrollableControl | ScrollViewer | ScrollView |
SoundPlayer | MediaPlayer | - |
SplitContainer | GridSplitter | Consider MasterDetailPage |
StatusStrip | StatusBar | - |
TabControl | TabControl | TabbedPage |
TableLayoutPanel | Grid | Grid |
TextBox | TextBox | Editor does not support rich (formatted) text |
Timer | DispatcherTimer | Device.StartTime() |
ToolStrip | ToolBar | Page.ToolbarItems and ToolbarItem |
ToolStripContainer, ToolStripDropDown, ToolStripDropDownMenu, ToolStripPanel | ToolBar with composition. | Page.ToolbarItems and ToolbarItem with composition |
ToolTip | ToolTip | Use Accessibility features |
TrackBar | Slider | Slider |
TreeView | TreeView | Consider hierarchical ListView in a NavigationPage |
UserControl | UserControl | View and also Custom Renderers |
VScrollBar | ScrollBar | use ScrollView |
WebBrowser | WebBrowser | WebView |