我刚刚完成了关于创建WPF UI AddIn的MSDN文章中的步骤:http://msdn.microsoft.com/en-us/library/bb909849%28v=vs.90%29.aspx
代码有效,点击按钮会弹出框,然后点击。我将Add-in的usercontrol放在一个标签项中,作为Tab项的内容:
TabItem tab = new TabItem();
tab.Name = info.AssemblyName.Name;
tab.Header = info.Name;
tab.Content = plug.GetAddInUI();
TabHost.Items.Add(tab); //Add the page to the TabControl
这正如预期的那样完美。但是,单击按钮时会发生一件有趣的事情。弹出消息框,但随后选项卡控件“冻结”。我无法切换到任何其他标签。按钮仍然会触发消息框,我可以移动整个窗口,因此程序不会挂起。
我可以通过VS进入中断模式,然后恢复程序,或者通过最小化/恢复窗口来“强制”制表控件来自行修复,等等。
我已阅读有关MessageBox禁止事件处理的帖子,因此我将Messagebox更改为Debug.Writeline。这个bug仍然存在。
我的代码几乎跟MSDN一样,但由于它很长,我不会在这里发布所有内容。与此同时,我不确定哪些细分市场是相关的。如果你告诉我要发布哪些部分,我会这样做。
答案 0 :(得分:0)
我设法通过在选择更改时调用TabControl.Focus()来解决它,如下所示:
private void TabHost_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
TabHost.Focus();
}
我相信这是WPF中的一个错误,而不是我做过的任何事情。