我设法创建了一个示例项目,该项目使用 HwndHost在 C# WPF 选项卡控件中托管记事本(而不是我的真实项目将嵌入的内容)。为此,非常感谢那些回复在 WPF 窗口中托管外部应用程序的人(顺便说一句,不需要 DwayneNeed)
此示例运行良好,直到您单击记事本的托管实例,然后尝试更改选项卡。如果您要导航到的新页面中没有任何内容,则必须先单击当前页面选择器,然后它才会接受对另一个选项卡的单击。如果您在其他页面上有内容(任何内容......只是一个按钮),那么您将被迫单击新选项卡选择器 TWICE 以使其导航离开。
我尝试过但不起作用的事情:
- 使用AttachThreadInput()加入两个应用程序窗口的输入线程。
- 调用
this.InvalidateVisual();
Tab Control 鼠标按下事件。
有什么诀窍:
- 当按下按钮时,以编程方式将
TabControl.SelectedIndex
值更改为我想要的值。
为了解决这个问题,我想我只需要在选项卡选择器的位置使用按钮(使它们不可见)并以编程方式更改页面。这没什么大不了的,但我只是想知道是否有其他人遇到过这个问题,也许有一个解释!
ps 我对 WPF 和 C# 有点陌生。