2009-09-30 17 views
9

Estoy usando el RibbonControl de WPF toolkit. Tiene los temas Office Blue, Black y Silver. Pero el tema no se aplica a los controles en la ventana. ¿Hay alguna solución para eso?Aplicar temas de Office 2007 para la aplicación WPF

Estoy aplying el tema como

<ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="/RibbonControlsLibrary;component/Themes/Office2007Black.xaml"/> 
</ResourceDictionary.MergedDictionaries> 

Pero los controles son como botón, cuadro de texto no están chaged.

Respuesta

3

Necesita un diccionario de recursos independiente para proporcionar estilos de WPF a varios controles. Creé el mío, probando los colores en varias aplicaciones. Realmente no es muy difícil de hacer, y me llevó un par de horas.

Si está buscando una solución rápida y fácil, intente con el WPF Themes. El tema de Bureau Blue se parece bastante a Office 2007 blue.

+0

Eres absolutamente correcto. – Sauron

+0

Tengo una pregunta continua: después de usar un tema de WPF, ¿cómo podemos restablecer el tema al sistema/tema del sistema operativo? –

0

¿Cómo intentas aplicar el tema? ¿Lo está aplicando en su app.xaml (algo como el siguiente)?

<ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary Source="/PresentationFramework.Aero,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35,ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" /> 
    <ResourceDictionary Source="/WPFToolkit;V3.5.31016.1;component/DataGrid/Themes/Aero.NormalColor.xaml" /> 
</ResourceDictionary.MergedDictionaries> 
0

He intentado volver a utilizar los recursos que están definidos en RibbonControlsLibrary.dll para poder aplicar un estilo similar al resto de mi aplicación. Después de horas de búsqueda y tocar el violín, esto es lo que me di cuenta:

<Rectangle Stroke="Black" StrokeThickness="2" RadiusX="6" RadiusY="6" HorizontalAlignment="Stretch" Width="Auto" Grid.RowSpan="3" Grid.ColumnSpan="3" 
Fill="{DynamicResource {x:Static r:RibbonSkinResources.RibbonBackgroundBrushKey}}" /> 

me ocurrió la idea viendo lo que las llaves en el diccionario de recursos fueron y mirando a este artículo: How do I get the actual resource from a ComponentResourceKey?

Este método permite para crear otros estilos que tengan la misma apariencia que el aspecto de la cinta seleccionada. Cambiar la máscara cambiará los otros aspectos de la aplicación, como botones, etc. ...

Cuestiones relacionadas