using System; using System.IO; using System.Linq; using System.Reflection; using System.Text; using Avalonia.Controls; using Avalonia.Controls.Platform; using Avalonia.Markup.Xaml; using Avalonia.Styling; namespace Avalonia.DesignerSupport { public class DesignWindowLoader { public static Window LoadDesignerWindow(string xaml, string assemblyPath) { Window window; Control control; using (PlatformManager.DesignerMode()) { var loader = new AvaloniaXamlLoader() {IsDesignMode = true}; var stream = new MemoryStream(Encoding.UTF8.GetBytes(xaml)); Uri baseUri = null; if (assemblyPath != null) { //Fabricate fake Uri baseUri = new Uri("resm:Fake.xaml?assembly=" + Path.GetFileNameWithoutExtension(assemblyPath)); } var localAsm = assemblyPath != null ? Assembly.LoadFile(Path.GetFullPath(assemblyPath)) : null; var loaded = loader.Load(stream, localAsm, null, baseUri); var styles = loaded as Styles; if (styles != null) { var substitute = styles.OfType