我设法创建了一个示例项目,该项目使用HwndHost在C#WPF选项卡控件中托管记事本(不是我的真实项目将嵌入)。为此,非常感谢那些回复Hosting external app in WPF window的人( BTW,不需要DwayneNeed )
此示例效果很好,直到您单击记事本的托管实例,然后然后尝试更改标签。如果您导航到的新页面中没有任何内容,则必须先单击当前页面选择器,然后才能接受其他选项卡上的单击。如果您在其他页面上有内容(任何内容......只是一个按钮),那么您将被迫单击新选项卡选择器TWICE以使其离开。
我尝试过的东西不起作用:
this.InvalidateVisual();
。诀窍是什么:
TabControl.SelectedIndex
值更改为我想要的值。为了解决这个问题,我想我只需要在Tab选择器的位置使用按钮(使它们不可见),然后以编程方式更改页面。这不是什么大问题,但我想知道是否有其他人遇到过这个问题,并且可能有解释!
P.S。我是WPF和C#的新手。
答案 0 :(得分:0)
您托管的记事本应用程序是另一个窗口,因此如果焦点位于记事本中 - 首先单击选项卡选择器会激活您的WPF窗口并使其聚焦,而不是第二次选择您想要做的事情。