2009-03-30 2 views
4

Я создаю свое первое приложение WPF, и я хотел бы понять, есть ли какая-то передовая практика при смешивании функций из пространства имен System.Windows.Forms.WPF Application refering System.Windows.Forms

В принципе, я хочу иметь всплывающее окно, которое открывается по умолчанию в нижнем правом углу монитора пользователей.

Я не могу найти Screen.PrimaryScreen. Обозначает эквивалент в пространствах имен WPF. В примерах, которые я видел, предлагается ссылаться на System.Windows.Forms в приложении WPF.

Что привело меня к вопросу, является ли эта плохая практика ?, учитывая, что эта ссылка не включена по умолчанию.

Я собираюсь ссылаться на необходимый ресурс WPF в моем существующем приложении форм Windows, чтобы я мог использовать это новое окно WPF.

Есть ли что-то не так с этим подходом?

EDIT: Я действительно нашел свойство, которое возвращает информацию основного экрана без ссылки на Windows Forms. Имущество - SystemParameters.WorkArea, мой вопрос о смешении ссылок все еще стоит.

ответ

0

Также вы должны учитывать ресурсы и накладные расходы на производительность, так как вашему приложению придется загружать сборки как для Windows Forms, так и для WPF. В форумах MSDN несколько раз упоминалось, что WPF/Winforms interopping занимает довольно много циклов процессора ...

0

Я не думаю, что ссылки на WinForms, когда это необходимо, являются плохими. Поскольку WPF по-прежнему является относительно новой технологией, он просто не имеет полного паритета характеристик с WinForms. Например, насколько мне известно, ни один из стандартных диалогов Windows (Open File, Save File, Browse for Folder и т. Д.) Еще не реализован в WPF. Единственный способ показать их в приложении WPF - использовать версию WinForms или использовать P/Invoke для отображения версий Win32 самостоятельно. Я лично использую версию WinForms, так как они уже столкнулись с проблемой упаковки Win32 API.

Мой подход заключается в том, чтобы использовать WPF как можно больше, и только возврат к WinForms, если WPF не заполняет мои потребности. Надеюсь, что в следующем выпуске WPF это станет все менее и менее необходимым.

+2

WPF имеет OpenFileDialog и SaveFileDialog. Они находятся в пространстве имен Microsoft.Win32. –

+0

Вау, я этого не знал. Спасибо за совет. :) – Andy