# WPF XAML and Event Navigation in VB Decompiler 26.6

> VB Decompiler 26.6 expands WPF XAML recovery and event navigation, adds form source tabs, and improves VB6/WinForms previews, project exports and VDD snapshots.

Canonical HTML: <https://www.vb-decompiler.org/vb_decompiler_266.htm>

## WPF XAML Recovery, Form Source Views and Event Navigation in VB Decompiler v26.6

VB Decompiler v26.6 expands the connection between a compiled application's interface and the code behind it. This release brings broader WPF resource and template reconstruction, restored XAML and Windows Forms source tabs, and improved navigation from WPF controls to their event handlers. It also extends VB6 and Windows Forms previews, strengthens project exports and saved analysis, and improves responsiveness when working with large applications.

For reverse engineers, malware analysts, forensic investigators and developers, these changes make it easier to connect visible controls, stored resources and program behaviour. The update covers both the visual investigation of an unfamiliar program and the detailed work of following references, inspecting native instructions and preserving findings for later analysis.

### WPF Resources, Styles and Embedded User Controls

A WPF interface often depends on resources defined outside the window itself. Version 26.6 expands reconstruction of local and merged resource dictionaries, dictionaries declared as classes, `BasedOn` and inline styles, brushes, fonts and scalar values. If a resource is missing from its expected location, a unique matching dictionary in the same assembly can supply it; ambiguous matches are reported.

Embedded custom user controls and local `ControlTemplate` content are now represented in more cases, including `TemplateBinding Content`. Recursive or ambiguous control definitions are detected. Unsupported controls retain their captions, and unsupported containers preserve their nested content, giving the analyst more useful context about the original interface.

[![A reconstructed WPF interface using resource dictionaries, styles and embedded user controls.](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_wpf_resources.png)](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_wpf_resources.png)
A reconstructed WPF interface using resource dictionaries, styles and embedded user controls.

### More Accurate WPF Layouts, Text and Vector Graphics

The WPF preview handles more of the layout rules used by `Grid`, `StackPanel`, `WrapPanel` and `DockPanel`: automatic and proportional sizing, margins, padding, alignment, `Hidden` and `Collapsed` states, default docking and `LastChildFill`. Compact user controls, group-box headings, tabs and nested frames are measured and positioned more accurately.

Formatted text composed from `Run` and `Span` elements is recovered more accurately. Text bindings use compact property names in the preview, so long binding expressions do not distort the layout. Simplified previews of `DataGrid` and Xceed `DataGridControl` use the column headings and widths stored in the application.

Vector previews now cover binary BAML `Path.Data`, rectangles, ellipses and linear gradients, including content scaled through a `Viewbox`. Image proportions, clipping, background composition and transparency have also been improved. Background images remain visible through nested transparent containers, while captions, borders and column headings retain their foreground position.

Ribbon groups use horizontal layouts with clearer captions and correctly proportioned icons. Switching tabs no longer accumulates page backgrounds or icons. Nonvisual values such as tooltips and behaviours no longer appear as overlapping controls. The Forms list uses short WPF class names with their original letter case, and the application entry no longer duplicates its startup window.

[![WPF layout and vector content reconstructed from compiled BAML, including scaled graphics and gradients.](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_wpf_vectors.png)](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_wpf_vectors.png)
WPF layout and vector content reconstructed from compiled BAML, including scaled graphics and gradients.

### Inspect Restored XAML and Windows Forms Initialisation Code

New form-source tabs expose restored XAML for WPF and initialisation code for Windows Forms alongside the visual preview. Syntax highlighting, matching-word highlighting, selection, copying and search support close inspection of how controls are declared and configured. WPF XML blocks can be folded.

`Ctrl+F` starts a search using the selected text, and `F3` finds the next match. Navigation retains the active source tab and cursor position. Theme changes update editor colours while keeping the correct source and selection, including matching-word, folding and selection colours.

XAML recovery has also been expanded for property owners, nested and attached properties, markup extensions, deferred resources and custom serializers. Namespace declarations, custom controls, templates, styles, resource references and point collections are handled more accurately; duplicate attributes such as `AutomationProperties.Name` are removed from restored output.

[![Restored WPF XAML in the form-source editor, with syntax highlighting, folding and search.](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_wpf_xaml_source.png)](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_wpf_xaml_source.png)
Restored WPF XAML in the form-source editor, with syntax highlighting, folding and search.

### Follow WPF Controls to Their Event Handlers

Version 26.6 improves WPF event-handler links recovered from XAML/BAML, generated connections and decompiled event subscriptions. Coverage includes routed commands and controls inside templates. Clicking a control's caption or icon retains the link to the original handler rather than losing the connection through the displayed child element.

Navigation preserves exact method names and letter case. Ambiguous handler targets are skipped, and duplicate event entries are removed from form properties. Back, Forward and Escape navigation between forms, handlers, code and declarations retains more of the investigation context: returning to an unchanged form restores its selected control, tab and scroll position.

[![Recovered WPF event connections link the selected control to its handler.](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_wpf_events.png)](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_wpf_events.png)
Recovered WPF event connections link the selected control to its handler.

### Broader Windows Forms and Third-Party Control Previews

Windows Forms reconstruction has been improved for older .NET applications as well as for more complex interfaces. The viewer handles control and tab order, nested controls, visibility, fonts, colours, password and read-only fields, saved dates and item lists more accurately. DevExpress previews benefit from improved image alignment, appearance settings and combo-box items.

Image lookup now covers more shared resources, custom resource classes and Visual Basic `My.Resources` references, including resource names with spaces, punctuation or leading digits. Ambiguous or missing references no longer cause images to be borrowed from unrelated resources.

`PictureBox` stretching, centring and proportional zoom, tiled backgrounds, transparent labels and control layering have been improved. JPEG loading failures and GIF scaling artefacts are corrected, and partial PNG and GIF transparency is preserved more accurately. Unsupported controls retain their captions; small standalone controls and track bars keep their stored dimensions, orientation and range.

[![Windows Forms initialisation code exposed in the new form-source tab.](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_winforms_source.png)](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_winforms_source.png)
Windows Forms initialisation code exposed in the new form-source tab.

### Richer VB6 Form and Control Reconstruction

The VB6 viewer now retains more saved information from tabs, toolbars, status bars and formatted `RichTextBox` content. Tab captions, selection, pictures and page contents are reconstructed more accurately, including multiline `SSTab` header layouts. Nonvisual `CommonDialog` components no longer cover the visible form.

`TreeView`, `ListView` and `ImageCombo` previews use more of their saved appearance and linked-image information. List views retain column captions, widths, alignment, icons, selection modes and hidden columns. The Properties pane exposes saved control settings and image-list references. Selecting a toolbar button shows its properties and available events.

Support has been expanded for Sheridan 3D panels, frames, check boxes, option buttons and command buttons, including captions, fonts, colours, states and button pictures. Microsoft Grid previews recover dimensions, fixed rows and columns, and appearance. Additional fixes address progress-bar fill and orientation, short panel captions, toolbar images, and status-bar fonts and widths.

Form properties refresh correctly as forms load or the selected control changes. Crashes when inspecting properties or closing previews have been corrected, and preview menu captions remain readable even when the original form uses a large font.

[![A reconstructed VB6 form with tabs, toolbar buttons, linked images and recovered control properties.](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_vb6_controls.png)](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_vb6_controls.png)
A reconstructed VB6 form with tabs, toolbar buttons, linked images and recovered control properties.

### More Complete WPF and .NET Project Exports

WPF project exports now include restored XAML and individual resource files alongside the original compiled resources. Recovered control declarations, event connections and startup code are written to generated C# files. If an event connection cannot be restored, the existing recovered code is retained for inspection.

The exporter determines target framework, architecture, application type, assembly references and product information more accurately, and identifies inferred settings in its warnings. Resource and icon exports retain their original resource names and report damaged or unavailable items. Restored XAML uses clearer warnings and English diagnostic comments.

Exported projects include only files successfully saved in the current export. Repeated exports ignore stale files, and a failed final save preserves the previous project file. C# classes, namespaces, method overloads and resource filenames are handled more accurately; methods following form initialisation are retained. XML special characters in project metadata are escaped while preserving original product names.

The exported XAML, C# and project structure provide material for analysis and manual refinement. Review recovered code, inferred settings and unresolved connections before using the result in an IDE.

[![A WPF project export containing restored XAML, generated C# files and recovered resources.](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_wpf_project_export.png)](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_wpf_project_export.png)
A WPF project export containing restored XAML, generated C# files and recovered resources.

### Large Applications, Memory Use and Cancellation

The previous fixed class-count limit has been removed. Support for .NET assemblies with large type, field, method and string tables has been improved, and large array initialisers are processed faster with lower memory use. Native disassembly and string/import recognition also cover more cases, including 64-bit instructions and unmanaged code in .NET applications.

Memory use has been reduced during analysis, project switching and HEX Editor operations on large files. The HEX Editor retains editing, Undo/Redo and saving. The update also improves handling of damaged or truncated executables and resources, including malformed .NET strings, and fixes a memory leak when saving analysis state fails.

Long file-opening and project, listing, VDD and procedure-list export operations can be cancelled. A pending cancellation during full decompilation stops further procedure processing. Cancelling optional prototype analysis keeps the parsed file open and retains completed findings; unfinished analytical reports are omitted and decoding options are restored.

Cancelled or failed single-file saves preserve the previous file, while completed files from a cancelled multi-file export remain available. Recovery after failed native-code obfuscation restores the original file and project state or reports the location of a recovery copy.

### VDD Snapshots and an Investigation That Can Be Resumed

VDD snapshots preserve more code, forms, resources and renamed variables in large projects. Completed .NET methods can be reopened without repeating decompilation, and saved code remains accessible when the original executable is missing. Older snapshot formats remain supported.

Damaged or unsupported databases are detected before replacing the open project, and incomplete snapshot data can no longer overwrite a more complete database. Older databases retain names and string references more accurately, including Traditional Chinese text. Opening a snapshot clears stale editor contents and displays database information without an extra confirmation dialog.

The String References list is restored correctly after loading saved analysis. Following a reference searches the active code view, reveals folded matches and preserves the list's search position. In Lite, Native Code and P-Code disassembly remain visible after a full pass or when opening saved code; Fast decompilation again warns when a complete String References list is unavailable.

[![Saved VDD analysis with recovered code, forms and resources available for continued investigation.](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_vdd_snapshot.png)](https://www.vb-decompiler.org/image/vb_decompiler_266/vb_decompiler_266_vdd_snapshot.png)
Saved VDD analysis with recovered code, forms and resources available for continued investigation.

### Navigation, Searches and the Plugin SDK

Decompiler and Disassembler addresses are synchronised when switching views. If an instruction has no displayed counterpart in the recovered code, navigation selects the nearest displayed address. Full 64-bit addresses are retained in the HEX Editor, code views, reference lists and exported TXT, MAP, HIEW and IDC procedure lists. IDC scripts preserve existing IDA instructions and data.

Find and Find Next include folded code and reveal matching blocks. Searching, copying and sending code to AI Helper retain text inside deeply nested folds. Procedure and reference searches, variable renaming and navigation from results have been improved; empty or failed searches no longer leave stale results.

The shared plugin SDK adds commands for identifying the displayed form or procedure, marking and unmarking functions, and locating functions by virtual address, including 64-bit addresses. Reading procedure code through a plugin no longer changes the active editor, procedure or HEX position. VB6 form and procedure renaming and native/Python plugin error handling have also been improved. See the [Plugin SDK reference](https://www.vb-decompiler.org/plugins_sdk.htm) for plugin development guidance.

### Everyday Usability and Updated Interface Languages

VB Decompiler now recognises .NET launcher executables and automatically opens the linked managed DLL when it is available. Recent Files, Windows shortcuts and drag-and-drop paths handle Unicode characters more reliably, including recent-file use under Wine and on Steam Deck. HEX and code views open the same selected target.

Other improvements cover startup diagnostics, missing settings or signature databases, keyboard access to tree context menus, folder dialogs on multiple monitors, and focus after closing progress windows. Tree context-menu commands apply to the item under the pointer, and Escape closes an open drop-down list before leaving a form preview.

AI Helper has improved server-address handling and cancellation; closing the application waits for an active request to finish safely. If the selected help translation is unavailable, the English PDF or website is used. A local PDF or CHM that cannot be opened falls back to the corresponding online documentation.

The Arabic, Brazilian Portuguese, Simplified and Traditional Chinese, Czech, Danish, Dutch, English, French, German, Greek, Hebrew, Indonesian, Italian, Japanese, Kurdish (Sorani), Persian, Polish, Portuguese, Russian, Slovak, Spanish, Turkish and Ukrainian translations have been updated. Missing translations, untranslated messages and text that did not fit buttons have also been corrected.

### Available Now

VB Decompiler v26.6 is available from the [download page](https://www.vb-decompiler.org/download.htm). Free Lite provides the inspection features described on the [Lite edition page](https://www.vb-decompiler.org/vb6-decompiler-lite.htm); the [edition comparison](https://www.vb-decompiler.org/order.htm#detailed-features) explains the licensed analysis and decompilation tools. The [complete release notes](https://www.vb-decompiler.org/news.htm#release-266) list every change in this update.

November 4, 2026

© Sergey Chubchenko, lead developer of [VB Decompiler](https://www.vb-decompiler.org/products.htm)

### Related reading

- [Visual WPF Form Reconstruction and Broader Interface Analysis in VB Decompiler v26.5](https://www.vb-decompiler.org/vb_decompiler_265.htm)

- [.NET Decompiler for C# and VB.NET](https://www.vb-decompiler.org/dotnet-decompiler.htm)

- [The Art of Editing Visual Basic™ Forms and Controls](https://www.vb-decompiler.org/forms_editing.htm)
