Поддержка воздушного пространства определенно прекращена в WPF 4.5?

Когда я пишу этот вопрос, через 2 дня после выпуска бета-версии .NET 4.5 файл Что нового в WPF 4.5 версии 4.5 Beta на странице MSDN по-прежнему указан раздел "Интеграция WPF с графическими пользовательскими интерфейсами win32" в качестве области в который WPF 4.5 предлагает улучшения. На этой странице рассказывается о двух новых свойствах на HwndHost, которые поддерживают это: IsRedirected и CompositionMode. Кроме того, что нового в бета-версии .NET 4.5 эта интеграция упоминается как новая функция.

Опять же, когда я пишу это, есть страницы для этих двух пунктов. У вас есть Перенаправлено сюда и CompositionMode здесь< /а>. (Обновление от 27 января 2014 г.: исходные страницы больше не доступны, поэтому я переместил эти ссылки, чтобы они указывали на копии Интернет-архива.)

Однако если вы обратитесь к документации по сам HwndHost, ни одно из этих свойств не присутствует. И их тоже нет в Visual Studio.

Таким образом, похоже, что слухи верны - похоже, улучшения воздушного пространства для взаимодействия были сняты. Но на всякий случай, если кто-то из Microsoft читает это, было бы хорошо, если бы а) мы могли получить положительное подтверждение и б) страницы, упомянутые выше, могли быть обновлены, чтобы перестать питать наши надежды.

Обновление от 27 января 2014 г. Я обновил ссылки для IsRedirected и CompositionMode, чтобы они указывали на Интернет-архив, поскольку исходные ссылки больше не работают. Также обратите внимание, что на страницах «Что нового» это больше не упоминается, потому что теперь эти ссылки относятся к финальной версии. Вы можете увидеть старые страницы, которые были актуальны, когда я изначально задал этот вопрос, по адресу эту заархивированную страницу и здесь.


person Ian Griffiths    schedule 02.03.2012    source источник
comment
Я не понимаю смысла Airspace в названии. Могли бы вы объяснить?   -  person Luis Filipe    schedule 02.03.2012
comment
Это действительно вопрос? Или больше FYI?   -  person GWLlosa    schedule 03.03.2012
comment
Это вопрос. Воздушное пространство — очень известная проблема в WPF. Она связана с тем, что две разные технологии пользовательского интерфейса (например, классическая Win32 и WPF) не могут совместно использовать пиксели в окне. Одна из самых больших новых функций, рекламируемых в WPF 4.5, заключалась в том, что ограничения воздушного пространства наконец-то будут сняты. Теперь довольно внезапно он исчез из документов. Я надеялся, что кто-нибудь из Microsoft сможет подтвердить или опровергнуть, действительно ли она исчезла, потому что эта ранее важная, заголовочная функция теперь, по-видимому, находится в подвешенном состоянии — официально не удалена, но и определенно не работает.   -  person Ian Griffiths    schedule 02.04.2012
comment
Я думаю, что это отличный вопрос, и я не слышал о возможном исправлении проблем с воздушным пространством, но, возможно, он больше подходит для форумов MSDN, чем для StackOverflow.   -  person Filip Skakun    schedule 03.04.2012
comment
Удручающие новости: visualstudio.uservoice.com/forums/121579-visual-studio/   -  person tofutim    schedule 06.08.2012
comment
Спасибо tofutim за ответ. К сожалению, GWLlosa и остальные посчитали этот вопрос чрезвычайно узким. (WPF на самом деле очень широко используется, поэтому, честно говоря, люди, которые сочли нужным закрыть этот вопрос, не знают, о чем они говорят.) В противном случае вы могли бы сделать это ответом на вопрос, и я мог бы принять Это. вздох   -  person Ian Griffiths    schedule 20.08.2012
comment
Этот вопрос следует вновь открыть. Здесь возникает вопрос: куда оно ушло или пропало? Это также представляет интерес для читателей SO.   -  person codekaizen    schedule 05.09.2012


Ответы (2)


Предложение «вернуть HwndHost .IsRedirected и CompositionMode" было опубликовано на Visual Studio UserVoice.

Microsoft отказалась от этого, заявив:

в настоящее время мы не сможем добавить эту функцию в WPF и .NET Framework.

Также похоже, что страницы MSDN, на которые вы ссылались, были удалены.

person Bradley Grainger    schedule 24.01.2014
comment
Я обновил ссылки, чтобы ссылаться на копии в Интернет-архиве, чтобы люди могли следить за археологией этого, если им интересно. - person Ian Griffiths; 28.01.2014

Существует довольно хороший сообщение в блоге от Dwayne Need, в котором описываются необычайные усилия, которые они приложили, чтобы заставить его работать. Ничего тонкого, они, например, в конечном итоге перехватили более 200 функций GDI, чтобы заставить их играть вместе с моделью рендеринга WPF. Результат был ожидаем:

Вы можете себе представить мое горе, когда после обширного обзора мы решили, что не можем выпустить эту функцию. Нас беспокоило то, что нам пришлось слишком глубоко взламывать систему, причем способами, которые было бы слишком трудно объяснить, не говоря уже о поддержке. Несмотря на то, что мы требовали, чтобы разработчики явно включали эту функцию для каждого HwndHost, мы чувствовали, что виды проблем, с которыми они столкнутся, будут их сбивать с толку, а обучение наших инженеров поддержки работе с эскалациями будет очень сложным. Даже ближе к концу нашей разработки мы боролись с длинным хвостом ошибок и проблемами с производительностью.

Именно такая глубокая системная интеграция должна быть выполнена командой платформы Win32, официально санкционирована и поддерживается. В Win8 мы начинаем видеть некоторые постепенные улучшения в этой области, как отмечалось ранее в API DirectComposition. К сожалению, до сих пор невозможно создать такой же богатый композитный опыт, который мы разработали.

Вопрос о том, собирается ли группа Windows взять на себя обязательства по обеспечению такого рода интеграции, пока остается открытым. Они, безусловно, вложили свои деньги в совсем другую лошадку и потратили много усилий на WinRT, модель рендеринга, которая, безусловно, вдохновлена ​​WPF, но ничего не делает для ее улучшения. Если это вообще будет решаться, рассчитывайте на годы, чтобы добиться этого.

Проверьте также остальную часть сообщения в блоге. У него есть отличные, хотя и высокого уровня, советы по решению существующих проблем с воздушным пространством.

person Hans Passant    schedule 25.01.2014