Red de conocimiento informático - Material del sitio web - Cómo modificar el tema del control DevExpress WPF

Cómo modificar el tema del control DevExpress WPF

Los controles DevExpress utilizan plantillas para representar la apariencia del control. Para lograr una apariencia excelente, necesitamos usar plantillas complejas con bordes anidados y pinceles de degradado. De esta manera, es imposible cambiar el color del control mediante un estilo simple, porque el cambio de color del control depende del efecto visual producido por diferentes pinceles. En este artículo, mostraremos a los clientes cómo modificar las plantillas de temas.

Para modificar la apariencia de un control, necesita encontrar una plantilla que contenga los elementos necesarios, incrustar la plantilla en los recursos de su aplicación y modificar la plantilla con precisión sin destruir la estructura interna de la plantilla. Una vez que modifiques la estructura de una plantilla, romperás algunas funciones.

También vale la pena señalar que la misma plantilla puede variar según el tema. Para implementar una plantilla personalizada para un tema específico que no sea el tema azul oscuro predeterminado, debe especificar el atributo ThemeName en la CLAVE de la plantilla. La siguiente es una plantilla de ejemplo para un RowIndicator con un tema azul oscuro predeterminado:

[XAML]

xmlns:dxgt="/winfx/2008/xaml/grid/themekeys"

...

lt;Window.Resourcesgt;

lt;DataTemplate x:Key="{dxgt:RowIndicatorThemeKey ResourceKey=IconPresenterTemplate}"gt; p>

....

lt;/DataTemplategt;

lt;/Window.Resourcesgt;

Esta plantilla no funcionará si Office2007Black Se especifica el tema.

Cree una plantilla de Office2007Black utilizando la propiedad ThemeName especificada:

[XAML]

xmlns: dxgt="/winfx/2008/xaml/grid/themekeys"

..

lt;Window.Resourcesgt;

lt;DataTemplate x:Key="{dxgt:RowIndicatorThemeKey ResourceKey=IconPresenterTemplate, ThemeName =Office2007Black}"gt;

...

lt;/DataTemplategt;

lt;/Window.Resourcesgt;

Si no necesita crear plantillas para diferentes temas, y si su plantilla personalizada es un tema independiente, simplemente establezca la propiedad IsThemeIndependent en True:

[XAML]

xmlns:dxgt="/winfx/2008/ xaml/grid /themekeys"

...

lt;Window.Resourcesgt;

lt;DataTemplate x:Key="{dxgt:RowIndicatorThemeKey ResourceKey= IconPresenterTemplate, IsThemeIndependent =true.IsThemeIndependent=true}"gt;

...

lt;/DataTemplategt;

lt;/Window.Resourcesgt;

Ahora, la pregunta más interesante es cómo encontrar la plantilla requerida. En DevExpress WPF, hay dos formas de encontrar la plantilla requerida: usando la herramienta snoop y usando el editor de temas.

Herramienta Snoop: Esta herramienta permite buscar en el árbol visual de controles. 1\Sources\DevExpress.Xpf.Themes"

El último paso es copiar la plantilla del código fuente e incrustar la plantilla en un recurso contenedor como Window.Resources. Recuerde que necesita usar el Tema azul oscuro predeterminado para usar la plantilla modificada.

Editor de temas: esta es una herramienta de edición independiente que le permite modificar el tema integrado de DevExpress y crear uno nuevo basado en el tema integrado. El objetivo principal de la herramienta es simplificar el tedioso trabajo de editar temas de terceros simplemente usando una etiqueta para apuntar a elementos visuales y configuraciones de apariencia específicos.