2012-01-30 13 views
8

Estoy buscando cambiar el estilo de un control, pero básicamente quiero copiar parte de un estilo predeterminado. ¿Alguien sabe cómo puedo averiguar cuál es el estilo predeterminado de un control?Cómo/Dónde encontrar Microsoft Estilos predeterminados para controles WPF

En mi caso, quiero hacer que los encabezados de las columnas en un DataGrid se vuelvan azules sobre el mouse como lo hacen los encabezados de las filas.

+1

posible duplicado de [Plantilla de control para controles existentes en WPF] (http://stackoverflow.com/questions/1559261/control-template-for-existing-controls-in-wpf) –

Respuesta

9

Puede encontrar algunas plantillas que están muy cerca de los valores por defecto en this MSDN site

Otra alternativa es obtener una copia de Expression Blend y lo utilizan para hacer una copia del estilo por defecto, sin embargo mezcla no es libre

+0

El enlace que proporcionó no parecen tener los estilos predeterminados Da un ejemplo de cómo configurar los estilos (al menos para DataGrid) pero no es el predeterminado. Tengo una copia de Blend, ¿cómo usaría Blend para obtener una copia de la plantilla de DataGrid? – KrisTrip

+1

El enlace contiene las plantillas predeterminadas, sin embargo, los colores que se muestran para DataGrid son personalizados y no se extraen de los colores específicos del tema como suelen hacerlo. Tendría que configurarlos usted mismo. Si le interesa diseñar solo una parte de DataGrid, le sugiero que consulte [este enlace] (http://blogs.msdn.com/b/jaimer/archive/2009/01/20/styling-microsoft- s-wpf-datagrid.aspx), o puede usar [esta página mal nombrada] (http://dotnet.dzone.com/news/wpf-kid-stuff-extracting) para ver un ejemplo del uso de Blend para hacer una copia del estilo. – Rachel

+0

alguna idea de cuáles son los colores predeterminados? ¿Están los enumerados en alguna parte? – KrisTrip

4

Contrariamente a lo que dice Rachel, el enlace que proporciona hace no proporciona las plantillas predeterminadas.

He visto usando System.Windows.Markup.XamlWriter.Save(myObject.Template) que las plantillas predeterminadas son completamente diferentes de lo que muestra ese sitio.

+0

Tiene razón, el primer enlace que publiqué no son los valores predeterminados exactos, aunque para la mayoría de los propósitos, me parece que están bastante cerca. He actualizado mi respuesta para aclarar eso, gracias :) – Rachel

+0

Después de mucha búsqueda, esta es la única manera que funcionó para ToggleButton. Incluso la función '(clic derecho) del componente XAML del diseñador> Editar plantilla> Editar una copia 'da una plantilla incorrecta (el botón de alternar no se alternará). ¡Gracias! – Vimes

Cuestiones relacionadas