2010-09-12 10 views
5

Sono stanco di sfarfallio della GUI e di ogni controllo possibile, milioni di articoli sul doppio buffer, flag di ControlStyle e così via che non funzionano nemmeno; guarda a questo esempi:Alternativa alle winforms che possono essere facilmente utilizzate con C# e .NET

How to prevent a Windows Forms TextBox from flickering on resize?

Dopo aver letto questa domanda, altri su SO, e molti articoli sul web penso che ci sono 2 opzioni, scrivono propri controlli, o utilizzare alternativa alle WinForms. Quindi la mia domanda è: quali sono le buone alternative che possono essere facilmente usate con C# e .NET su Windows, e forse anche su Linux e Mac (ma questo non è necessario)? Comunque se mi manca qualcosa con tutto quel casino di Windows, sarò felice se mi correggerai.

Una cosa importante, nonostante lo sfarfallio e altri problemi sono fastidiosi, non impediscono il completamento del lavoro, quindi la priorità delle alternative è di essere pienamente funzionante, altrimenti è meglio attenersi ad antiche forme di vinci.

risposta

7

WPF, sarebbe la risposta a Windows Form se siete sulla piattaforma .NET.

+1

solo per essere sicuri - se scelgo WPF mi sarà legato alle finestre ancora più che con le forme vincere, giusto? – SuitUp

+0

@SuitUp - Sì. Il codice di Winforms è molto più facile da trasferire su un altro toolkit GUI. –

2

Non ho mai sperimentato lo sfarfallio nei miei programmi winform con VS2008 in C# .NET. Tuttavia, se si desidera un'alternativa, è sempre possibile chiamare le funzioni API WIN native. È molto più complicato dell'uso di winform, quindi probabilmente te ne pentirai. Dovrai scrivere un sacco di codice per popolare e recuperare i dati dai tuoi controlli.

La ragione per cui .NET è stato sviluppato è stata semplificare la programmazione (e bloccare milioni di programmatori nella piattaforma Microsoft). Sono molto felice con questo. Se hai investito del tempo per imparare la piattaforma .NET, penso che sarebbe meglio non attenersi ad essa. Ogni sistema di sviluppo ha le sue peculiarità e potresti avere più problemi di quelli che avresti con .NET, e potrebbe essere più difficile trovare qualcuno che ti aiuti quando hai un problema.

+0

Controlla il link dalla mia domanda, ci sono informazioni su come riprodurre lo sfarfallio nel primo post (anche una domanda in realtà). – SuitUp

+0

OK, ho eseguito il progetto come da lei suggerito e il controllo ha effettivamente lampeggiato mentre lo ridimensionavo. Questo è normale comportamento di Windows.Osservo un comportamento simile in Microsoft Word mentre ridimensiono la finestra e Windows esegue nuovamente il rendering del testo. Quello che sto dicendo è, qual è il problema? Con quale frequenza gli utenti ridimensionano la finestra che stanno utilizzando? La maggior parte delle persone lascia la finestra alla dimensione originale, la ridimensiona alla dimensione desiderata, o ingrandisce la finestra. Questo è un problema che non ha bisogno di una soluzione. Secondo me. A meno che non abbia frainteso di nuovo. –

0

Se non si è disposti a considerare l'utilizzo di WPF, è possibile utilizzare il Qt nativo con C# bindings ma credo che WPF sia di gran lunga la soluzione migliore. Considera il tuo stile di codifica: se sei già abituato a usare associazioni e comandi, o gestori di eventi, WPF è il più vicino concettualmente.

Non penso che sia una buona idea prendere in considerazione l'utilizzo di C# per chiamare una libreria nativa, ma se andate in questo modo, fatecelo sapere come funziona!

2

Hai visto this SO question? Potrebbe aiutarti con i problemi di sfarfallio.

0

WPF o Silverlight (per progetti web + desktop)

Problemi correlati