ModernFormsNext v1.8.0
Full Changelog: v1.7.0...v1.8.0
[1.8.0] - 2026-07-17
ModernFormsNext 1.8.0 expands the framework and designer substantially while keeping Windows as
the primary platform. Android is introduced as an experimental shared-control vertical slice, not
as a production-ready platform.
Added
- Added
CheckedListBox, nativeRichTextBox, and SkiaSharp-renderedToolTipcontrols, with
ControlGallery examples and automated coverage. - Added a native Markdown document pipeline with
MarkdownViewerandDocumentViewer, including
selection, links, images, tables, lists, footnotes, code blocks, syntax highlighting, viewport
layout, and plain-text conversion. - Added
MarkdownEditorwith source highlighting, formatting commands, undo/redo, editor/preview/
split modes, synchronized scrolling, and host-controlled link and image insertion workflows. - Added hierarchical dynamic resource dictionaries at application, window, and control scope.
Resource lookup follows control, parent, window, then application order; live resource references
update bound CLR properties when the winning value changes. - Added designer docking and document-outline workflows, including outline search, display modes,
collapse/expand actions, and control reordering between containers. - Added WindowKit backend registration, platform service, dispatcher, and permission contracts that
keep platform-specific implementations outside the shared UI projects. - Added an experimental
net10.0-androidWindowKit backend, an Android smoke test, a shared
Windows/Android sample, deterministic Android tooling, and automated backend tests. - Added a reusable
SkiaControlSurfaceso a platform host can lay out, render, hit-test, focus, and
route input through a real ModernFormsNext control tree. - Added architecture decision records and a staged framework roadmap covering resources, themes,
localization, navigation, and optional feature packages.
Changed
- Improved designer code generation and reverse parsing. Newly generated
.Designer.csfiles now
assign the form throughSize; the parser still acceptsClientSizefrom files generated by
earlier releases, so existing projects can be opened and saved without a manual migration. - Improved AltGr handling and text-editing shortcuts so international keyboard input is not
mistaken for Ctrl/Alt commands or focus-navigation shortcuts. - Improved font and inherited-style resolution, including safe lookup before visual attachment,
cached SkiaSharp typefaces, and diagnostics for performance-sensitive style resolution. - Expanded ControlGallery with the new controls and Markdown workflows, and made its Windows target
explicit so solution builds select the correct desktop assets. - Updated the framework, templates, published library packages, and Visual Studio designer
extension to the coordinated1.8.0release version.
Fixed
- Fixed Unicode text editing by keeping document positions in UTF-16 while converting explicitly at
the RichTextKit layout boundary. Caret movement, hit testing, selection, rendering, Backspace, and
Delete now preserve emoji, supplementary characters, combining text, and IME composition. - Fixed local Markdown image reload/disposal so an in-flight asynchronous read does not keep an
image or its temporary directory locked while the host replaces or removes the asset. - Fixed Android pointer routing with stable multi-touch IDs, deepest enabled-control hit testing,
independent capture, tap/click semantics, drag cancellation, and realScrollableControl
scrolling rather than an Android-only scroll model. - Fixed Android hardware-key and screen-keyboard input, including surrounding text, selection,
composition updates, committed text, code-point deletion, and activity recreation behavior for
the shared text-control path. - Fixed Android lifecycle, permission coordination, deployment, launcher resolution, diagnostics,
and Visual Studio launch configuration for the repository samples. - Fixed designer rendering and interaction on 100%, 125%, 150%, 175%, and 200% display scaling.
Logical/device conversion is applied once for the surface, hit testing, drag and resize, grid,
snapping, selection borders and adorners, resize handles, designer chrome, and SkiaSharp runtime
previews. - Fixed form-size round trips so logical sizes do not drift when code is parsed, regenerated, or
edited on a High DPI display. - Fixed duplicate native borders around Windows forms that draw ModernFormsNext-managed chrome.
- Fixed generated template content so
bin,obj, IDE state, and temporary files cannot leak into
ModernFormsNext.Templatespackages. - Fixed solution registration so designer tests remain in the intended solution folder and run in
solution-level validation.
Experimental
- Android 1.8.0 can build and run the repository's shared-control sample with SkiaSharp rendering,
logical-pixel density conversion, basic layout and focus, multi-touch input, scrolling, hardware
keys, IME text editing, lifecycle tracking, dispatching, and manifest-aware permissions. - Android does not yet support general
Application.Run(Form), the full WindowKit windowing model,
multiple framework windows, complete accessibility, native dialogs, clipboard, file pickers,
drag and drop, or the complete set of platform services. APK and sample Release/AOT paths are
exercised; general trimming and Android App Bundle/store publication are not release-supported. - Android APIs, hosting structure, and runtime behavior may change. Android 1.8.0 is not recommended
for production applications. See Android platform status.
Documentation
- Added Android backend, development, permissions,
adb, deployment, diagnostics, and
cross-platform sample guides with an explicit Experimental status and known limitations. - Added dynamic resource usage and architecture documentation, including lookup precedence,
invalidation behavior, weak listeners, diagnostics, and current reflection/AOT considerations. - Expanded designer architecture documentation for logical coordinates, High DPI rendering,
SkiaSharp composition, and theSize/legacyClientSizeround-trip contract. - Added public guidance for Markdown viewing/editing, Android development, framework architecture,
roadmap items, and release packaging.
Packaging
- Centralized shared NuGet authorship, company, repository, MIT license, package URL, README, icon,
release notes, Source Link, repository publishing, and symbol-package metadata. - Enabled XML documentation and
.snupkgsymbols for published library packages; template packages
remain symbol-free because they contain project content rather than a library API. - Marked tests, samples, playgrounds, generated applications, and smoke tests as non-packable while
keeping only intended library and template projects publishable. - Kept all existing NuGet package IDs, the VSIX identity and Product ID, publisher, and Visual
Studio installation targets unchanged.
Breaking changes
- No intentional public API removals, package renames, namespace moves, target-framework removals,
or identity changes were found betweenv1.7.0and this release. Sizeis the canonical assignment emitted for forms by the designer. This is a generated-code
behavior change rather than a runtime API removal; the reverse parser remains compatible with
legacyClientSizeassignments.- Android APIs are new in 1.8.0 and explicitly experimental. Consumers should not treat their
current hosting shape as a stable production contract.
Known limitations
- Windows remains the primary and best-supported runtime and designer platform.
- The Visual Studio designer is still evolving;
.mfdesignremains the source of truth and reverse
parsing intentionally supports only recognized generated-code patterns. - Android limitations are listed in Android platform status, including
the incomplete windowing/service model and the absence of a production release guarantee.