Skip to content

Add back Design.SetPreviewWith(AvaloniaObject, Control) overload#21184

Merged
maxkatz6 merged 2 commits into
AvaloniaUI:masterfrom
MrJul:fix/design-previewwith-exception
Apr 19, 2026
Merged

Add back Design.SetPreviewWith(AvaloniaObject, Control) overload#21184
maxkatz6 merged 2 commits into
AvaloniaUI:masterfrom
MrJul:fix/design-previewwith-exception

Conversation

@MrJul

@MrJul MrJul commented Apr 13, 2026

Copy link
Copy Markdown
Member

What does the pull request do?

This PR adds back the Design.SetPreviewWith(AvaloniaObject, Control?) overload that was removed in Avalonia 12, to avoid unexpected exceptions in the previewer.

Contrary to #21147, this PR ignores the preview for types deriving from Control, matching what happened in Avalonia 11. Otherwise, stack overflow exceptions occur if the control is previewed with itself.

<Template> should be used instead. The original goal of this PR was to display an "error" preview in this case, telling the user to prefer <Template>. However, we currently have a real overload issue with the XAML compiler, preventing the template overload from being chosen.

Since the template overloads are new and mostly unused, for now, let's revert to the Avalonia 11 behavior.
Proper overload support will be added in another PR. Edit: unlikely to occur, this is invalid according to the XAML spec.

@MrJul MrJul added bug area-previewer backport-candidate-12.0.x Consider this PR for backporting to 12.0 branch labels Apr 13, 2026
@avaloniaui-bot

Copy link
Copy Markdown

You can test this PR using the following package version. 12.1.999-cibuild0064781-alpha. (feed url: https://nuget-feed-all.avaloniaui.net/v3/index.json) [PRBUILDID]

@maxkatz6 maxkatz6 added this pull request to the merge queue Apr 19, 2026
Merged via the queue into AvaloniaUI:master with commit 96b72f3 Apr 19, 2026
10 checks passed
MrJul added a commit to MrJul/Avalonia that referenced this pull request Apr 28, 2026
…loniaUI#21184)

* Add back Design.SetPreviewWith(AvaloniaObject, Control) overload

* Remove dead code
@MrJul MrJul added backported-12.0.x and removed backport-candidate-12.0.x Consider this PR for backporting to 12.0 branch labels Apr 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants