我有一个WinForms应用程序,我在ElementHost控件中托管WPF用户控件。从那个WPF UserControl我需要显示一个WPF对话框。虽然我可以创建WPF窗口并调用ShowDialog(),但我可以将对话框隐藏到"隐藏在"主应用程序。如何在此上下文中设置WPF对话框的所有者?
EntryDialog entryDialog = new entryDialog();
bool? ret = entryDialog.ShowDialog();
if (ret.Value == true)
{
}
答案 0 :(得分:1)
获取所有者设置的技巧是访问底层的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"