Forzare un theme di WPF

Me lo segno qui perché è un piccolo trucchetto, ma potrebbe essere utile a chi usa WPF.

Nello sviluppo di applicazioni o di controlli può risultare utile vedere come l'aspetto di essi cambino in funzione del theme. Per la rete si trova qualche tip, ma sono finte soluzioni che caricano manualmente il ResourceDictionary a livello di Application e non funziona con i propri controlli.

Questo snippet, da usare solo a scopo di sviluppo, interferisce sulla effettiva scelta del theme da utilizzare:

public App() 
{ 
    //ForceTheme("Luna", "NormalColor"); 
    //ForceTheme("Luna", "Homestead"); 
    //ForceTheme("Luna", "Metallic"); 
    //ForceTheme("Aero", "NormalColor"); 
    //ForceTheme("Generic", ""); 
} 
private static void ForceTheme(string themeName, string themeColor) 
{ 
    // To force a particular style 
    Type t = Type.GetType("MS.Win32.UxThemeWrapper, PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"); 
    FieldInfo themeNameField = t.GetField("_themeName", BindingFlags.NonPublic | BindingFlags.Static); 
    themeNameField.SetValue(null, themeName); 
    FieldInfo themeColorField = t.GetField("_themeColor", BindingFlags.NonPublic | BindingFlags.Static); 
    themeColorField.SetValue(null, themeColor); 
}

Basta chiamare il metodo ForceTheme nel costruttore della propria applicazione di test.

Commenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.



Segnala su: Facebook MSDN Social Twitter Segnalo Wikio Diggita Technorati Stumbleupon Google Yahoo FriendFeed Delicious Furl

Nella stessa categoria
I più letti del mese
TagCloud
.NET Framework, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Framework 4.0, ADO.NET Entity Framework, AJAX, Architettura, ASP, ASP.NET, ASP.NET 2.0, ASP.NET 2.0 per tutti, ASP.NET 4.0, ASPItalia.com, Custom Control, Databinding, Datagrid, HttpRuntime, IIS, Javascript, LINQ, LINQ to Entities, LINQ to SQL, Media Center, Microsoft Expression, Object Oriented Programming, Off Topic, PDC 2008, Silverlight, Silverlight - animazioni, Silverlight 2.0, Silverlight 3.0, User Control, Visual Studio, Windows 7, Windows CardSpace, Windows Client, Windows Communication Foundation, Windows Live Services, Windows Presentation Foundation, Windows Server, Windows Vista, Windows Workflow Foundation, XAML, XBox 360, XHTML, XML, XPS, XSLT
BLOG INFO
  • 199 post, 86 commenti, 42 trackback
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom
IN EVIDENZA