2012-03-02 4 views
15

Mentre scrivo questa domanda, 2 giorni dopo il rilascio della beta di .NET 4.5, la pagina What's New in WPF 4.5 Version 4.5 Beta su MSDN elenca ancora "Integrazione di WPF con interfacce utente grafiche win32" come area in cui WPF 4.5 offre miglioramenti. Questa pagina parla delle due nuove proprietà su HwndHost che supportano questo: IsRedirected e CompositionMode. Inoltre, la pagina principale what's new in .NET 4.5 beta menziona questa integrazione come una nuova funzionalità.Il supporto spazio aereo è stato definitivamente eliminato da WPF 4.5?

Ancora, mentre scrivo questo, ci sono pagine per questi due elementi. Hai IsRedirected here e CompositionMode here. (Aggiornamento 27 Gen 2014:. Pagine originali non è più disponibile, così ho spostato questi link per puntare alle copie di Internet Archive)

Tuttavia, se si va alla documentazione per HwndHost itself, nessuna di queste proprietà è presente. E non sembrano nemmeno in Visual Studio.

Quindi sembrerebbe che le voci siano vere - sembra che i miglioramenti dello spazio aereo per l'interoperabilità siano stati abbandonati. Ma nel caso qualcuno da Microsoft stia leggendo questo, sarebbe bello se a) potremmo ottenere una conferma positiva eb) le pagine sopra menzionate potrebbero essere aggiornate per non farci credere.

Aggiornamento 27 gennaio 2014: Ho aggiornato i collegamenti per IsRedirected e CompositionMode per puntare nell'Archivio Internet, perché i collegamenti originali sono morti. Si noti inoltre che le pagine What's New non menzionano più questo perché questi link sono ora per la versione finale. Puoi vedere le vecchie pagine aggiornate quando inizialmente ho posto questa domanda allo this archived page e allo here.

+0

Non capisco il significato di "Spazio aereo" nel titolo. Potresti spiegare? –

+0

Questa è davvero una domanda? O più di una FYI? – GWLlosa

+9

È una domanda. Lo spazio aereo è un problema molto noto in WPF - si riferisce al fatto che due diverse tecnologie di interfaccia utente (ad esempio, classiche Win32 e WPF) non possono condividere pixel in una finestra. Una delle più grandi nuove funzionalità propagandate per WPF 4.5 era che i limiti dello spazio aereo sarebbero stati finalmente risolti. Ora piuttosto improvvisamente è svanito dai documenti. Speravo che qualcuno di Microsoft potesse confermare o negare se è davvero andato, perché questa caratteristica principale in precedenza è ora apparentemente in un limbo - non ufficialmente abbandonata, ma anche non sicuramente funzionante. –

risposta

5

Un suggerimento per "Bring back the HwndHost.IsRedirected and CompositionMode" è stato pubblicato su Visual Studio UserVoice.

Microsoft ha rifiutato, dicendo:

in questo momento, non saremo in grado di aggiungere la funzionalità di WPF e .NET Framework.

Sembra inoltre che le pagine MSDN a cui è stato collegato siano state rimosse.

+0

Ho aggiornato i collegamenti per fare riferimento alle copie nell'Archivio Internet, quindi le persone possono seguire l'archeologia di questo se sono interessati. –

11

C'è un piuttosto buono blog post da Dwayne Necessario che descrive lo sforzo straordinario che hanno messo nel tentativo di farlo funzionare. Niente di sottile, per esempio finiscono per intercettare più di 200 funzioni GDI per farle giocare insieme al modello di rendering di WPF. Il risultato era prevedibile:

È possibile eseguire l'imaging del mio cuore spezzato quando, dopo una revisione approfondita, abbiamo deciso di non poter effettivamente spedire questa funzione. La nostra preoccupazione era che dovevamo incidere troppo profondamente nel sistema, e in modi che erano troppo difficili da spiegare - per non parlare di mantenere. Anche se richiedevamo che gli sviluppatori attivassero esplicitamente questa funzione per ogni HwndHost, ritenevamo che il tipo di problemi che avrebbero incontrato sarebbe stato sconcertante per loro e addestrare i nostri tecnici di supporto a gestire le escalation sarebbe stato molto difficile. Anche verso la fine del nostro sviluppo, stavamo lottando con un lungo bug bug e problemi di prestazioni.

Questo è esattamente il tipo di integrazione profonda del sistema che deve essere eseguita dal team della piattaforma Win32, ufficialmente sanzionato e supportato. Con Win8, stiamo iniziando a vedere alcuni miglioramenti incrementali in questo spazio, come notato in precedenza nell'API di DirectComposition.Sfortunatamente, non è ancora possibile costruire lo stesso tipo di ricca esperienza composita che avevamo sviluppato.

Se il gruppo di Windows si impegnerà a fornire questo tipo di integrazione è ora una domanda aperta. Sicuramente hanno messo i loro soldi su un cavallo molto diverso e hanno speso un sacco di sforzi su WinRT, un modello di rendering che è sicuramente ispirato da WPF ma non fa nulla per renderlo migliore. Se verrà affrontato, contate su anni per raggiungerlo.

Controllare anche il resto del post del blog. Ha una consulenza eccellente, anche se di alto livello, per affrontare i problemi esistenti dello spazio aereo.

Problemi correlati