This reference lane maps Windows Forms application patterns to Avalonia 11.3.12 XAML/C# patterns for:
Coverage intent for this lane:
controls/README.md,api-index-generated.md.Control lifecycle (Load, Shown, HandleCreated, Dispose) to Avalonia visual tree and TopLevel lifecycle.Dock/Anchor, FlowLayoutPanel, TableLayoutPanel, SplitContainer, and MDI shell patterns.ICommand, KeyBinding, and routed input.BindingSource, DataBindings, ErrorProvider, and validation behaviors.DataGridView, ListView, TreeView migration to Avalonia list/data controls.MenuStrip, ToolStrip, ContextMenuStrip, NotifyIcon, and status bar-style shells.OpenFileDialog/SaveFileDialog/FolderBrowserDialog to IStorageProvider workflows.Timer, BackgroundWorker, Control.Invoke to DispatcherTimer and Dispatcher.UIThread.OnPaint(Graphics) to Render(DrawingContext) and template/style pipelines.LayoutEngine, PerformLayout, SuspendLayout/ResumeLayout) to Avalonia Measure/Arrange invalidation and pass sequencing.WM_PAINT, owner-draw, buffering styles) to Avalonia Render, AffectsRender, and compositor-driven redraw.UserControl and TemplatedControl.MaskedTextBox, ComboBox autocomplete, NumericUpDown).DateTimePicker, MonthCalendar).CheckBox, RadioButton, CheckedListBox patterns).TabControl/TabPage to view-model driven tabs).ToolTip, HelpProvider, contextual launchers).ProgressBar, TrackBar, status indicators).PictureBox, ImageList, form icons).PropertyGrid replacement.DataTransfer + TopLevel.Clipboard.Splitter, ScrollableControl.AutoScroll, scrollbar visibility patterns).ListView migration (details columns, grouped sections, large-data virtualization strategy).TreeView migration (lazy node loading, selection sync, tri-state check patterns).RichTextBox, LinkLabel to inline-rich text + hyperlink command surfaces).ToolStripSplitButton, ToolStripDropDownButton to SplitButton/DropDownButton + flyouts).AcceptButton, CancelButton, ProcessCmdKey to IsDefault/IsCancel + KeyBinding).Dock/Anchor/panels) with Grid-based composition.winforms-to-avalonia/README.md:
00-winforms-control-lifecycle-and-layout-basics.md01-winforms-layout-panels-flow-table-dock-anchor.md02-winforms-split-container-mdi-and-navigation-shells.md03-winforms-events-commands-shortcuts-and-input.md04-winforms-data-binding-bindingsource-and-viewmodels.md05-winforms-validation-errorprovider-and-data-errors.md06-winforms-datagridview-listview-treeview-to-avalonia-items-controls.md07-winforms-menus-toolstrips-contextmenus-status-and-tray.md08-winforms-dialogs-file-pickers-and-window-modal-workflows.md09-winforms-timers-backgroundworker-and-ui-thread-dispatch.md10-winforms-ownerdraw-gdi-and-custom-rendering-to-avalonia.md11-winforms-styling-theming-and-control-templates.md12-winforms-custom-controls-usercontrol-and-templatedcontrol.md13-winforms-high-dpi-scaling-and-flow-direction-rtl.md14-winforms-application-lifetime-window-management-and-services.md15-winforms-resources-localization-settings-and-assets.md16-winforms-to-avalonia-migration-playbook.md17-winforms-to-avalonia-api-coverage-manifest-controls-layout-styling-platform.md18-winforms-native-interop-and-webbrowser-replacement-strategies.md19-winforms-testing-diagnostics-and-regression-safety.md20-winforms-input-controls-text-masked-combo-autocomplete-numeric.md21-winforms-date-time-and-calendar-controls.md22-winforms-choice-controls-checkbox-radio-and-checked-lists.md23-winforms-tabcontrol-tabpage-and-document-workspaces.md24-winforms-tooltip-helpprovider-and-context-guidance.md25-winforms-progress-trackbar-and-status-feedback-patterns.md26-winforms-picturebox-imagelist-and-icon-asset-migration.md27-winforms-propertygrid-and-inspector-editor-patterns.md28-winforms-dragdrop-clipboard-and-data-transfer.md29-winforms-printing-printpreview-and-export-workflows.md30-winforms-notifications-balloon-tip-and-toast-patterns.md31-winforms-splitter-scrollablecontrol-autoscroll-and-resizable-regions.md32-winforms-listview-details-groups-and-large-data-sets.md33-winforms-treeview-lazy-loading-selection-and-check-state.md34-winforms-richtextbox-linklabel-and-rich-content-patterns.md35-winforms-toolstrip-dropdown-and-split-button-patterns.md36-winforms-acceptbutton-cancelbutton-and-keyboard-processing.md37-winforms-layout-system-engine-invalidations-and-migration.md38-winforms-rendering-paint-pipeline-double-buffering-and-migration.mdFor exhaustive lookup (not only migration samples):
52-controls-reference-catalog.md and controls/README.md30-layout-measure-arrange-and-custom-layout-controls.md, 21-custom-layout-authoring.md04-styles-themes-resources.md, 10-templated-controls-and-control-themes.md, 17-resources-assets-theme-variants-and-xmlns.md22-validation-pipeline-and-data-errors.md, 23-accessibility-and-automation.md29-storage-provider-and-file-pickers.md, 31-clipboard-and-data-transfer.md, 34-dragdrop-workflows.md, 53-menu-controls-contextmenu-and-menuflyout-patterns.md, 55-tray-icons-and-system-tray-integration.mdapi-index-generated.mdWinForms C#:
var panel = new Panel { Dock = DockStyle.Fill };
var button = new Button { Text = "Save", Anchor = AnchorStyles.Top | AnchorStyles.Right };
button.Click += (_, _) => Save();
panel.Controls.Add(button);
Controls.Add(panel);
Avalonia XAML:
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:MyApp.ViewModels"
x:DataType="vm:MainViewModel">
<Grid ColumnDefinitions="*,Auto" RowDefinitions="Auto,*">
<Button Grid.Column="1"
Margin="8"
HorizontalAlignment="Right"
Command="{CompiledBinding SaveCommand}"
Content="Save" />
</Grid>
</UserControl>
Avalonia C#:
using Avalonia;
using Avalonia.Controls;
var grid = new Grid
{
ColumnDefinitions = ColumnDefinitions.Parse("*,Auto"),
RowDefinitions = RowDefinitions.Parse("Auto,*")
};
var saveButton = new Button
{
Content = "Save",
Margin = new Thickness(8),
HorizontalAlignment = Avalonia.Layout.HorizontalAlignment.Right,
Command = viewModel.SaveCommand
};
Grid.SetColumn(saveButton, 1);
grid.Children.Add(saveButton);
{CompiledBinding ...} + x:DataType) in migrated views.Dispatcher.UIThread when migrating code that used Control.Invoke.Dock and Anchor.
Grid rows/columns and alignment instead of absolute offsets.Window.ShowDialog(owner) and async command pipelines instead of blocking loops.