如何获取UserControl所属的Window?

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

我是否试图获取用户控件所属的窗口?

我正在尝试从自定义用户控件打开一个对话框,需要当前窗口才能打开它。我能做些什么? 这就是我现在正在做的,但是这个解决方案有多好?

            var window = this.GetVisualRoot();
            var result = await dialog.ShowDialog<bool>((Window)window);
c# avalonia
1个回答
0
投票

您可以通过将当前应用程序生命周期转换为

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
}
© www.soinside.com 2019 - 2024. All rights reserved.