Я собираю сборку, которая запускается как «надстройка» для надстройки Outlook поставщика. Когда мне пора выполнить свое «действие», я должен открыть простое окно с несколькими простыми элементами управления. Надстройка производителя предоставляет мне целочисленный дескриптор родительского окна. Я могу довольно легко создать форму с помощью WinForms, добавив ссылку на System.Windows.Forms из моей сборки и следующий код:
FrmHistoryDisplay frm = new FrmHistoryDisplay();
frm.ShowDialog(new ParentWindowWrapper(_parentWindowHandle));
где ParentWindowWrapper - это класс подкладки вокруг дескриптора окна, который мне дан
private class ParentWindowWrapper : IWin32Window {
private int _parentWindowHandle;
public ParentWindowWrapper(int parentWindowHandle) {
_parentWindowHandle = parentWindowHandle;
}
public IntPtr Handle {
get { return new IntPtr(_parentWindowHandle); }
}
}
В методе ShowDialog формы используется реализатор IWin32Window, чтобы обернуть дескриптор окна родителя.
Это все работает и кажется достаточно простым. Мне просто интересно, можно ли сделать нечто подобное с окном WPF, а не с формой WinForm? Должен ли я заботиться?