我使用 Avalonia 开发了一个在 Windows 操作系统上运行的软件应用程序。然而,该软件的窗口需要由另一个应用程序捕获,这依赖于窗口标题和类名进行配置。因此,我需要自定义窗口的类名,在spy++中显示为“Avalonia-e0e3c6f1-9942-4902-9230-25331dc796c2”之类的名称。在 Avalonia 中,窗口类名称似乎是随机生成的。有没有办法修改这个类名?
我渴望探索有关如何在 Avalonia 中自定义窗口类名称以满足外部应用程序的要求的任何建议或见解。
一种可能的方法是对 Avalonia 中的主窗口类进行子类化,并覆盖生成窗口类名称的默认行为。您可以创建一个扩展标准 Avalonia 窗口类的自定义窗口类,并提供设置自定义类名称的方法。
using Avalonia.Controls;
public class CustomWindow : Window
{
public CustomWindow()
{
// Set a custom class name for the window
ClassName = "MyCustomWindowClassName";
}
}
然后,您可以在应用程序中使用此自定义窗口类代替标准 Avalonia 窗口类:
var appBuilder = AppBuilder.Configure<App>();
appBuilder.AfterSetup(builder =>
{
builder.Instance = new CustomWindow();
});
appBuilder.Start<MainWindow>();