4

我设法创建了一个示例项目,该项目使用 HwndHost在 C# WPF 选项卡控件中托管记事本(而不是我的真实项目将嵌入的内容)。为此,非常感谢那些回复在 WPF 窗口中托管外部应用程序的人(顺便说一句,不需要 DwayneNeed

此示例运行良好,直到您单击记事本的托管实例,然后尝试更改选项卡。如果您要导航到的新页面中没有任何内容,则必须先单击当前页面选择器,然后它才会接受对另一个选项卡的单击。如果您在其他页面上有内容(任何内容......只是一个按钮),那么您将被迫单击新选项卡选择器 TWICE 以使其导航离开。

我尝试过但不起作用的事情:

  • 使用AttachThreadInput()加入两个应用程序窗口的输入线程。
  • 调用this.InvalidateVisual();Tab Control 鼠标按下事件。

有什么诀窍:

  • 当按下按钮时,以编程方式将TabControl.SelectedIndex值更改为我想要的值。

为了解决这个问题,我想我只需要在选项卡选择器的位置使用按钮(使它们不可见)并以编程方式更改页面。这没什么大不了的,但我只是想知道是否有其他人遇到过这个问题,也许有一个解释!

ps 我对 WPF 和 C# 有点陌生。

4

1 回答 1

0

您托管的记事本应用程序是另一个窗口,因此如果焦点在记事本中 - 首先单击选项卡选择器会激活您的 WPF 窗口并使其成为焦点,然后单击第二次单击执行您想要执行的操作。

于 2013-07-30T15:02:19.850 回答