.net - tutorial - wpf xaml
¿Tema de Windows 7 para WPF? (2)
Una adición a la respuesta de Lars y la actualización de DanM:
Al implementar, debe agregar el aero Dll al directorio de instalación.
Puede hacerlo yendo a las propiedades de PresentationFramework.Aero que agregó a las referencias y configurando CopyLocal=True
. Luego, deberá ir a la herramienta de implementación que esté utilizando (me encanta WIX ...) y agregarla a la lista de archivos implementados.
¿Hay alguna manera de hacer que una aplicación WPF parezca que se ejecuta en Windows 7, incluso si se ejecuta en XP? Estoy buscando algún tipo de tema en el que pueda pegar. Conozco el proyecto de temas en Codeplex ( http://www.codeplex.com/wpfthemes ), pero me falta soporte para DataGrid
, que es algo que necesidad crítica Estaba pensando que tal vez el tema de Windows 7 sería un puerto fácil, o existe en algún archivo en algún lugar. Cualquier información que tenga (incluso si son malas noticias) sería muy apreciada.
Actualizar
Utilizando la idea de @Lars Truijens, pude obtener el aspecto de Windows 7 para los principales controles, pero lamentablemente no funcionó para el control WPF Toolkit DataGrid
, que necesito.
DataGrid
ve así con el tema Aero
DataGrid
debería verse así
Por lo tanto, todavía estoy buscando una solución a este problema si alguien tiene alguna idea. ¿Tal vez alguien ha construido una extensión para el tema Aero que cubre los controles del kit de herramientas de WPF? De nuevo, cualquier información que tenga es muy apreciada.
Actualización 2 - ¡Problema resuelto!
Para que el tema Aero funcione con los controles de WPF Toolkit, solo tiene que agregar un segundo diccionario Aero, por lo que su App.xaml debería verse así.
<Application.Resources>
...
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
<ResourceDictionary
Source="pack://application:,,,/WPFToolkit;component/Themes/Aero.NormalColor.xaml" />
...
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Además, recomendaría desactivar la grilla en sus controles DataGrid
(porque se ven horribles ):
<DataGrid GridLinesVisibility="None" ...>
WPF viene con los temas estándar de Windows en todas las versiones de Windows. Por ejemplo, puede tener el tema Aero (que usan Vista y Windows 7) en Windows XP con los siguientes pasos:
- Agregue PresentationFramework.Aero a la lista de referencias de su aplicación como un requisito
- Edite su App.xaml
de esto
<Application.Resources>
<!-- Your stuff here -->
</Application.Resources>
a esto
<Application.Resources>
<ResourceDictionary>
<!-- Put your stuff here instead -->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Fuente: http://mrpmorris.blogspot.com/2008/05/using-vista-aero-theme-in-xp-wpf-apps.html
Otras alternativas a continuación. Asegúrese de agregar el ensamblaje correspondiente a la lista de referencias de su aplicación como lo requiera.
<ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Classic;component/themes/Classic.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Royale;component/themes/Royale.NormalColor.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Luna.Homestead;component/themes/Luna.Homestead.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Luna.Metallic;component/themes/Luna.Metallic.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Zune;component/themes/Zune.NormalColor.xaml"/>