Любой недостаток использования ElementHost для размещения WPF UserControl в приложении Winform? - PullRequest
4 голосов
/ 16 февраля 2010

Интересно, есть ли какие-либо недостатки в использовании ElementHost для размещения WPF UserControl в приложении Winform?

Я спрашиваю, потому что в целом мне кажется, что создание нового приложения WPF с базовым интерфейсом, который выглядит прилично, занимает много времени. Прилично в том смысле, что если я создаю новое приложение Winforms и добавляю в него некоторые элементы управления, я получаю базовый интерфейс, который выглядит и ведет себя подобно многим другим приложениям, но не выглядит простым. Если я делаю то же самое с приложением WPF, я не чувствую, что достигаю тех же результатов, я получаю «простое» приложение с белым фоном, если я не изменю роли на дизайнера и не потрачу дополнительное время, чтобы оно выглядело определенным образом. путь.

Однако бывают случаи, когда WPF желателен для меня, потому что это сравнительно легко создавать стилизованный интерфейс. Рассмотрим управление видеоплеером; в WPF я могу создать что-то, что выглядит очень красиво и индивидуально, но требует гораздо меньше времени и усилий, чем элемент управления Winforms. В этих случаях для меня имеет смысл использовать WPF, так как в итоге я трачу меньше времени, чем на OPriaint: -).

Я понимаю, что использую много субъективных терминов, но это мой аргумент в пользу первоначального вопроса.

Обновление:

Просто чтобы прояснить мой пример "управления видеоплеером". WPF не только дает мне MediaElement для воспроизведения, но, если я хочу сказать, накладываю кнопку воспроизведения на видео, когда оно приостановлено, или если я хотел, чтобы полупрозрачная полоса «воспроизведение / пауза / стоп / громкость» появляется, когда мышь находится в определенном месте, WPF делает это намного проще, чем любая альтернатива Winforms.

Edit:

Возможно, у меня неправильная опция конфигурации или что-то в этом роде, но это также разочаровывает, что раздел «Описание» исчезает, когда я смотрю на WPF против Winforms Control. Еще более расстраивает то, что нажатие клавиши F1 в форме свойств WPF не приведет вас к конкретному свойству / событию, на котором вы были.

Обновление:

Кто-нибудь еще? Меня больше беспокоит влияние на производительность и / или ограничения возможностей, которые могут возникнуть при размещении WPF UserControl в ElementHost . Пока это звучит так, как будто есть разовые накладные расходы времени выполнения, но это все?

1 Ответ

5 голосов
/ 16 февраля 2010

Я вижу несколько потенциальных недостатков.

Во-первых, теперь у вас есть два способа отображения пользовательского интерфейса. Это может создавать проблемы с точки зрения обслуживания, в зависимости от того, как разработчики касаются кода.

Во-вторых, с WPF действительно связана среда выполнения (для отправки событий, управления свойствами зависимостей и т. Д. И т. Д.), Но это единовременные затраты. Если вы используете это для небольшого количества элементов управления, то вы платите относительно большую стоимость пропорционально его использованию.

Я бы не сказал, что это нарушители соглашения, все зависит от вашего приложения и вашей команды.

...