我是否试图获取用户控件所属的窗口?
我正在尝试从自定义用户控件打开一个对话框,需要当前窗口才能打开它。我能做些什么? 这就是我现在正在做的,但是这个解决方案有多好?
var window = this.GetVisualRoot();
var result = await dialog.ShowDialog<bool>((Window)window);
您可以通过将当前应用程序生命周期转换为
IClassicDesktopStyleApplicationLifetime
: 来检索主窗口
if (Avalonia.Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
var currentWindow = desktop.MainWindow;
await dialog.ShowDialog<bool>(currentWindow);
}
else
{
// handle mobile and browser platforms if applicable
}