如何在Avalonia中自定义窗口类名称?

问题描述 投票:0回答:1

我使用 Avalonia 开发了一个在 Windows 操作系统上运行的软件应用程序。然而,该软件的窗口需要由另一个应用程序捕获,这依赖于窗口标题和类名进行配置。因此,我需要自定义窗口的类名,在spy++中显示为“Avalonia-e0e3c6f1-9942-4902-9230-25331dc796c2”之类的名称。在 Avalonia 中,窗口类名称似乎是随机生成的。有没有办法修改这个类名?

我渴望探索有关如何在 Avalonia 中自定义窗口类名称以满足外部应用程序的要求的任何建议或见解。

c#
1个回答
0
投票

一种可能的方法是对 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>();
© www.soinside.com 2019 - 2024. All rights reserved.