我有一个 WinForms 应用程序,在 ElementHost 控件中托管 WPF 用户控件。我需要从该 WPF UserControl 显示一个 WPF 对话框。虽然我可以创建 WPF 窗口并调用 ShowDialog(),但我可以让对话框“隐藏在”主应用程序后面。如何在此上下文中设置 WPF 对话框的所有者?
EntryDialog entryDialog = new entryDialog();
bool? ret = entryDialog.ShowDialog();
if (ret.Value == true)
{
}
最佳答案
获取所有者集的技巧是访问底层 WinForms 窗口并使用 WPF WindowInteropHelper 将其全部组合在一起。
EntryDialog entryDialog = new entryDialog();
HwndSource source = (HwndSource)HwndSource.FromVisual(this);
new System.Windows.Interop.WindowInteropHelper(entryDialog).Owner = source.Handle;
bool? ret = entryDialog.ShowDialog();
if (ret.Value == true)
{
}
对于 HwndSource,您还需要:
using System.Windows.Interop
此 XAML 减少了任务栏的困惑
ShowInTaskbar="False"
关于c# - 从 Winforms ElementHost WPF UserControl 设置 WPF 对话框所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36606973/