Qualsiasi svantaggio di utilizzare un ElementHost per ospitare un WPF UserControl in un'applicazione WinForm?

StackOverflow https://stackoverflow.com/questions/2269410

Domanda

Curioso di sapere se ci sono eventuali svantaggi di usare un ElementHost per ospitare un WPF UserControl in un'applicazione WinForm?

Lo chiedo perché, in generale, sento che ci vuole troppo tempo per me creare una nuova applicazione WPF con un'interfaccia di base che sembra decente. Decente, nel senso che se creo una nuova applicazione WinForms e gettare alcuni controlli su di esso io alla fine con un interfaccia di base che sembra e si comporta simile a molte altre applicazioni, ma non ha un aspetto normale. Se faccio la stessa cosa con un'applicazione WPF non mi sento io ottenere gli stessi risultati, io alla fine con un'applicazione "semplice" con uno sfondo bianco a meno che non posso cambiare ruoli a progettista e trascorrere più tempo per farlo sembrare un certo modo.

Tuttavia ci sono casi in cui è auspicabile WPF a me per la sua relativa facilità di creazione di un'interfaccia stilizzato. Prendere in considerazione un controllo lettore video; in WPF posso creare qualcosa che sembra molto bello e personalizzato, ma ha preso molto meno tempo e fatica di un controllo di WinForms. In questi casi ha senso per me di utilizzare WPF da quando ho finire per spendere meno tempo di quanto avrei OnPaint overiding: -)

.

Mi rendo conto che sto usando un sacco di termini soggettivi, ma questo è il mio ragionamento dietro alla domanda originale.

Aggiornamento:

Giusto per chiarire il mio esempio "controllo lettore video". Non solo WPF dammi la MediaElement per giocare con ma se voglio dire, sovrapporre un pulsante Play sul video quando è in pausa o se volevo un "/ volume di riproduzione / pausa / stop" barra semitrasparente di presentarsi quando il mouse in in una determinata posizione, WPF rende molto più semplice rispetto a qualsiasi alternativa WinForms.

Modifica

Forse ho un'opzione di configurazione sbagliata o qualcosa, ma è anche frustrante la sezione "Descrizione" scompare quando sto guardando un WPF vs WinForms controllo. Ancora più frustrante che premendo F1 in una forma di proprietà WPF non ti prende allo specifico immobile / evento che eri via.

Aggiornamento:

Qualsiasi altro? Sono più preoccupato per l'impatto sulle prestazioni e / o le limitazioni delle funzionalità che verrebbero introdotte ospitando il WPF UserControl in una ElementHost . Finora sembra che ci sia l'overhead di un tempo del runtime, ma è tutto qui?

È stato utile?

Soluzione

Vedo alcuni svantaggi potenziali.

In primo luogo, ora avete due modi di visualizzare UI. Questo può presentare problemi da un punto di vista a seconda degli sviluppatori di toccare il codice di manutenzione.

In secondo luogo, WPF ha un tempo di esecuzione ad esso associato (per gli eventi di dispacciamento, la gestione proprietà di dipendenza, ecc, ecc), ma si tratta di un costo una tantum. Se si utilizza che per un piccolo numero di controlli, allora si sta pagando un costo relativamente grande in proporzione al suo utilizzo.

Non direi che questi sono affare automatici, è tutto dipende dalla vostra applicazione e il vostro team.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top