gpt4 book ai didi

c# - 从 Winforms ElementHost WPF UserControl 设置 WPF 对话框所有者

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:54 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com