Un piccolo tip che può rivelarsi davvero utile per uniformare il comportamento grafico delle nostra applicazioni WPF. Se creiamo un’applicazione WPF ed utilizziamo i controlli standard senza cambiarne i templates, questi controlli si renderizzaranno in modo diverso a seconda del sistema operativo su cui sta girando il nostro client.
Questa cosa può diventare fuorviante per l’utente che trova rendering grafici differenti a seconda del sistema operativo. WPF, grazie ai dictionaries di risorse permette di uniformare il comportamento grafico in modo che la stessa applicazione si comporti nello stesso modo sia sotto Windows XP che sotto Windows Vista (per esempio, pensate ad una progressbar). E’ sufficiente aggiungere il seguente frammento di codice durante l’inizializzazione dell’applicazione.
1: private void OnStartup(object sender, StartupEventArgs e)
2: {
3: //..snip..
4: ResourceDictionary aero = new ResourceDictionary();
5: aero.Source = new Uri("/PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e35;component/themes/aero.normalcolor.xaml", UriKind.RelativeOrAbsolute);
6: this.Resources.MergedDictionaries.Add(aero);
7: //..snip..
8: }