Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Надстройка для MS Project (Office)


Автор: lebedun 16.6.2015, 09:46
Пишу надстройку для ms project.
Создал проект в Visual Studio "Надстройка Project 2013". Хочу чтобы моя надстройка открывала свое диалоговое окно созданное в WPF. Но при добавлении элемента WPF в этот проект доступен только "Пользовательский элемент управления WPF". Добавив его, я не могу использовать этот элемент как диалоговое окно (отсутствует функция Show, ShowDialog), поэтому в замле и в Code-Behind меняю UserControl на Window класс.

Код

public partial class UserControl1 : Window
    {
        public UserControl1()
        {
            InitializeComponent();
            this.ShowDialog();
        }
    }


При отладке загружается MS Project и как положено появляется мое диалоговое окно. Закрыв это окно, а за тем и MS Project, программа чуть подвисает и появляется исключение

Код

System.Runtime.InteropServices.COMException не обработано
  HResult=-2147417846
  Message=Фильтр сообщений выдал диагностику о занятости приложения. (Исключение из HRESULT: 0x8001010A (RPC_E_SERVERCALL_RETRYLATER))
  Source=WindowsBase
  ErrorCode=-2147417846
  StackTrace:
       в MS.Win32.UnsafeNativeMethods.ITfSource.UnadviseSink(Int32 cookie)
       в System.Windows.Input.TextServicesContext.StopTransitoryExtension()
       в System.Windows.Input.TextServicesContext.Uninitialize(Boolean appDomainShutdown)
       в MS.Internal.ShutDownListener.HandleShutDown(Object sender, EventArgs e)
  InnerException: 


Добавив такой код
       
Код

 private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
            pop.Dispatcher.InvokeShutdown();
        }


исключение пропадает, а подвисание остается и длится около 5 сек.

Что происходит и Как мне с этим справиться?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)