C# 从Excel启动WPF无模式对话框

C# 从Excel启动WPF无模式对话框,c#,wpf,excel,C#,Wpf,Excel,我想从Excel启动一个自定义的查找和替换无模式WPF对话框。我能够以无模式对话框的形式启动WPF窗口,并使用WindowInteropHelper将Excel指定为对话框的父级。我面临的问题是,如果我在对话框中输入文本,它将被输入Excel中的活动单元格。我在链接“”中找到了此问题的解决方案 Link建议为对话框创建单独的线程。如果这样做,则当焦点位于对话框中时,Excel不会在工作表中显示所选内容。我想模拟Excel查找和替换对话框的行为,也就是说,尽管焦点在Excel查找和替换对话框中,但

我想从Excel启动一个自定义的查找和替换无模式WPF对话框。我能够以无模式对话框的形式启动WPF窗口,并使用WindowInteropHelper将Excel指定为对话框的父级。我面临的问题是,如果我在对话框中输入文本,它将被输入Excel中的活动单元格。我在链接“”中找到了此问题的解决方案

Link建议为对话框创建单独的线程。如果这样做,则当焦点位于对话框中时,Excel不会在工作表中显示所选内容。我想模拟Excel查找和替换对话框的行为,也就是说,尽管焦点在Excel查找和替换对话框中,但工作表中的选择应该显示出来。如果我没有使用单独的线程来创建WPF对话框(在主线程中创建对话框),我可以实现预期的选择行为,但是键盘输入不会反映在对话框中

请帮助我解决无模式WPF对话框的键盘输入问题,而不使用单独的线程来创建对话框

使用C#.Net 4.0


提前感谢。

期待类似ElementHost.EnableModelessKeyboardInterop的内容。您是否尝试过使用WinForm托管WPF UserControl?