如果在任务窗格中使用wpf控件,NewInspector和Close事件不会引发

问题描述:

我在任务窗格中遇到了WPF控件问题。我用ElementHost加了它。所以,如果我显示任务窗格,然后NewInspector和检查员Close不再提出。 这里是我的代码如果在任务窗格中使用wpf控件,NewInspector和Close事件不会引发

<?xml version="1.0" encoding="UTF-8"?> 
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load"> 
    <ribbon> 
    <tabs> 
     <tab idMso="TabNewMailMessage">   
     <group label="MyGroup" id="mygroup"> 
      <button id="addItemBlabla" 
        size="large"     
        label="Add Items" 
        onAction="AddItemsClick"/> 
     </group>   
     </tab> 
    </tabs> 
</ribbon> 
</customUI> 

//..Ribbon.cs file 

public void AddItemsClick(Office.IRibbonControl ribbonControl) 
{ 
    Inspector inspector = ribbonControl.Context as Inspector; 
    if (this.taskPane == null) 
    { 
     this.taskPane = Globals.ThisAddIn.CustomTaskPanes.Add(new MyUserControlThatContainsWpfElementHost(), "Label", this.inspector); 
    } 

    this.taskPane.Visible = true;  
} 

//.. ThisAddIn.cs file 

    private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    { 
     this.Application.Inspectors.NewInspector += this.Inspectors_NewInspector;    
    } 

    private void Inspectors_NewInspector(Outlook.Inspector Inspector) 
    { 
     //Does not work after task pane is shown!!!   
    } 

UPDATE 这个例子作品,如果我使用的设计功能区,但我需要使用XML版本

我解决我的问题。您可以在这里找到答案 https://social.msdn.microsoft.com/Forums/vstudio/en-US/73ea73da-8597-4152-938d-2ff99a82960f/newinspector-and-close-event-does-not-raise-if-wpf-control-used-in-task-pane?forum=vsto

我们需要检查人员字段添加到代码:

//..ThisAddIn.cs 
private Inspectors inspectors; 

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    this.inspectors = this.Application.Inspectors; 
    this.inspectors.NewInspector += this.Inspectors_NewInspector;    
} 

private void Inspectors_NewInspector(Outlook.Inspector Inspector) 
{ 
     //Now this works!!! 
}