public static void Init(Dictionary<string, object> shared) { Design.IsDesignMode = true; Api = new DesignerApi(shared) {UpdateXaml = UpdateXaml, UpdateXaml2 = UpdateXaml2, SetScalingFactor = SetScalingFactor}; var plat = (IPclPlatformWrapper) Activator.CreateInstance(Assembly.Load(new AssemblyName("Avalonia.Win32")) .DefinedTypes.First(typeof (IPclPlatformWrapper).GetTypeInfo().IsAssignableFrom).AsType()); TypeInfo app = null; var asms = plat.GetLoadedAssemblies(); foreach (var asm in asms) { if(Equals(asm, typeof(Application).GetTypeInfo().Assembly) || Equals(asm, typeof(DesignerApp).GetTypeInfo().Assembly)) continue; try { app = asm.DefinedTypes.Where(typeof (Application).GetTypeInfo().IsAssignableFrom).FirstOrDefault(); if (app != null) break; } catch { //Ignore, Assembly.DefinedTypes threw an exception, we can't do anything about that } } AppBuilder.Configure(app == null ? new DesignerApp() : (Application) Activator.CreateInstance(app.AsType())) .UseWindowingSubsystem("Avalonia.Win32") .UseRenderingSubsystem("Avalonia.Direct2D1") .SetupWithoutStarting(); }
public static void Init(Dictionary <string, object> shared) { Design.IsDesignMode = true; Api = new DesignerApi(shared) { UpdateXaml = UpdateXaml, UpdateXaml2 = UpdateXaml2, SetScalingFactor = SetScalingFactor }; var runtimeAssembly = Assembly.Load(new AssemblyName("Avalonia.DotNetFrameworkRuntime")); var plat = (IRuntimePlatform)Activator.CreateInstance(runtimeAssembly .DefinedTypes.First(typeof(IRuntimePlatform).GetTypeInfo().IsAssignableFrom).AsType()); TypeInfo app = null; var asms = plat.GetLoadedAssemblies(); foreach (var asm in asms) { if (Equals(asm, typeof(Application).GetTypeInfo().Assembly) || Equals(asm, typeof(DesignerApp).GetTypeInfo().Assembly)) { continue; } try { app = asm.DefinedTypes.Where(typeof(Application).GetTypeInfo().IsAssignableFrom).FirstOrDefault(); if (app != null) { break; } } catch { //Ignore, Assembly.DefinedTypes threw an exception, we can't do anything about that } } var builderType = runtimeAssembly.GetType("Avalonia.AppBuilder"); var builder = (dynamic)Activator.CreateInstance(builderType, app == null ? new DesignerApp() : (Application)Activator.CreateInstance(app.AsType())); builder .UseWindowingSubsystem("Avalonia.Win32") .UseRenderingSubsystem("Avalonia.Direct2D1") .SetupWithoutStarting(); }
public static void Init(Dictionary <string, object> shared) { Design.IsDesignMode = true; Api = new DesignerApi(shared) { UpdateXaml = UpdateXaml, SetScalingFactor = SetScalingFactor }; var plat = (IPclPlatformWrapper)Activator.CreateInstance(Assembly.Load(new AssemblyName("Avalonia.Win32")) .DefinedTypes.First(typeof(IPclPlatformWrapper).GetTypeInfo().IsAssignableFrom).AsType()); TypeInfo app = null; var asms = plat.GetLoadedAssemblies(); foreach (var asm in asms) { if (Equals(asm, typeof(Application).GetTypeInfo().Assembly) || Equals(asm, typeof(DesignerApp).GetTypeInfo().Assembly)) { continue; } try { app = asm.DefinedTypes.Where(typeof(Application).GetTypeInfo().IsAssignableFrom).FirstOrDefault(); if (app != null) { break; } } catch { //Ignore, Assembly.DefinedTypes threw an exception, we can't do anything about that } } AppBuilder.Configure(app == null ? new DesignerApp() : (Application)Activator.CreateInstance(app.AsType())) .WithWindowingSubsystem(Application.InitializeWin32Subsystem) .WithRenderingSubsystem(() => { }) .SetupWithoutStarting(); }
private void DoInit(string targetExe, StringBuilder logger) { _appDir = Path.GetFullPath(Path.GetDirectoryName(targetExe)); Directory.SetCurrentDirectory(_appDir); Action<string> log = s => { UpdateState(s); logger.AppendLine(s); }; log("Loading assemblies from " + _appDir); var asms = new List<Assembly>(); foreach(var asm in Directory.GetFiles(_appDir).Where(f=>f.ToLower().EndsWith(".dll")||f.ToLower().EndsWith(".exe"))) try { log("Trying to load " + asm); asms.Add(Assembly.LoadFrom(asm)); } catch (Exception e) { logger.AppendLine(e.ToString()); } log("Initializing built-in designer"); var dic = new Dictionary<string, object>(); Api = new DesignerApi(dic) {OnResize = OnResize, OnWindowCreated = OnWindowCreated}; LookupStaticMethod("Avalonia.DesignerSupport.DesignerAssist", "Init").Invoke(null, new object[] {dic}); _window = new Control { Controls = { new ElementHost() { Child = new InProcDesignerView(_appModel), Dock = DockStyle.Fill } } }; _window.CreateControl(); new Timer {Interval = 200, Enabled = true}.Tick += delegate { XamlUpdater(); }; _comm.SendMessage(new WindowCreatedMessage(_window.Handle)); _initSuccess = true; }