Primo:
WPF è al 100% indipendente dal browser, perché WPF non viene eseguito nel browser.
XBAP (ora deprecato) e Silverlight eseguito nel browser, ma entrambi sono sottoinsiemi di WPF.
Secondo:
Il vantaggio principale di WPF è la natura gerarchica delle strutture GUI è possibile creare. Se hai mai fatto programmazione ASP.NET, WPF è una mossa più naturale di WinForms.
L'associazione dei dati in WPF è diversa, ma migliore, IMO.
Bottom line: XAML e le sue complessità sono una grande curva di apprendimento, e WPF e XAML vanno molto a braccetto. Ma una volta comprese le basi e puoi iniziare a costruire GUI di base con esso, non vorrai mai più usare WinForms.
Per quanto riguarda Pro e Contro, direi che l'unico vero con in WPF è la grande curva di apprendimento. Può fare tutto ciò che WinForms può fare da una prospettiva .NET ed è più facile da usare (una volta compreso) di WinForms. L'unico posto che potrebbe essere "mancante" è nella manipolazione diretta di GDI +, ma probabilmente vorrai evitarlo laddove possibile. Se diventa necessario in un progetto WPF, basta creare un controllo WinForms e ospitarlo in WPF. Non è la soluzione più elegante, ma può portare a termine il lavoro.
Stai chiedendo specificamente di Silverlight? O su XBAP? o anche applicazioni desktop WPF? –
WPF non è per il browser che è per il desktop, Silverlight viene eseguito nel browser, entrambi utilizzano XAML per l'interfaccia utente. – CSharpAtl