在现有.NET 6项目集成AvaloniaUI时遇窗口系统未配置错误
在现有.NET 6项目中集成AvaloniaUI的问题
我正尝试在现有.NET 6项目中使用AvaloniaUI,但未找到相关集成指引,仅能找到创建新项目的教程。我看到大量官方示例使用如下入口代码:
class Program { // Initialization code. Don't use any Avalonia, third-party APIs or any // SynchronizationContext-reliant code before AppMain is called: things aren't initialized // yet and stuff might break. [STAThread] public static void Main(string[] args) => BuildAvaloniaApp() .StartWithClassicDesktopLifetime(args); // Avalonia configuration, don't remove; also used by visual designer. public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure<App>() .UsePlatformDetect() .WithInterFont() .LogToTrace(); }
但我的项目中没有UsePlatformDetect()方法,于是尝试用UseStandardRuntimePlatformSubsystem()替代,却触发以下错误:
Unhandled exception. System.InvalidOperationException: No windowing system configured.
at Avalonia.AppBuilder.Setup()
我的入口代码:
internal class Program { // Initialization code. Don't use any Avalonia, third-party APIs or any // SynchronizationContext-reliant code before AppMain is called: things aren't initialized // yet and stuff might break. [STAThread] public static void Main(string[] args) { BuildAvaloniaApp() .StartWithClassicDesktopLifetime(args); } // Avalonia configuration, don't remove; also used by visual designer. public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure<Main>() .UseStandardRuntimePlatformSubsystem() .LogToTrace(); }
我的主应用类(不打算使用XML特性):
internal class Main : Application { public override void OnFrameworkInitializationCompleted() { if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { desktop.MainWindow = new MainWindow(); } } }
主窗口类:
internal class MainWindow : Window { private TextBox imageLocation; public MainWindow() {...} }
内容的提问来源于stack exchange,提问作者Tazmanian Tad
相关产品推荐
相关产品推荐

