2010-08-25 13 views
5

Ho un piccolo problema con il progetto wpf su cui sto lavorando attualmente. Sono nuovo di WPF. Nella mia app.xaml sto usando il tema Microsoft Aero per la mia applicazione. Io ho qualcosa di simile nella mia app.xamlIgnora temi in WPF

<ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e35;component/themes/Aero.NormalColor.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 

Ora quello che vorrei sapere come ignorare determinate proprietà di stile per esempio Per i pulsanti voglio sovrascrivere lo stile del carattere, mantenendo nel frattempo il resto dello stile aerodinamico.

Se definisco uno stile per pulsante nella finestra risorse, ad es.

<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}" x:Key="RedTextBasedOnButton"> 
      <Setter Property="Foreground" Value="Red" /> 
     </Style> 

e definire un pulsante in base allo stile di cui sopra

il pulsante perde tutte le proprietà di stile aerodinamico. Credo che il problema è a che fare con il modo in cui io definisco la proprietà BasedOn per lo stile

BasedOn="{StaticResource {x:Type Button}}" 

Non credo che la risorsa è statico in quanto proviene da una dll, probabilmente dovrebbe essere qualcosa di simile . Non sono sicuro però.

BasedOn="{DynamicResource {x:Type Button}}" 

ma quanto sopra tiri eccezione e che cosa se avessi ResourceDictionary multipla nel mio App.xaml esempio luna e classico. Come posso sapere quale usare come predefinito e allo stesso tempo usando e sovrascrivendo un altro (ad esempio luna) specificamente per determinati controlli nel mio ui? Quindi alcuni dei miei pulsanti saranno basati sullo stile luna e alcuni sullo stile aerodinamico con alcune ulteriori modifiche?

Qualche idea?

saluti,

+0

possibile duplicato del [Override sovrascritto WPF Theme] (http://stackoverflow.com/questions/2377055/override-overriden-wpf-theme) –

+0

Qualcuno di stili hanno chiavi esplicite alle quali potresti legare? – Killnine

risposta

0

per la tua domanda specifica su

esempio Per i pulsanti voglio sovrascrivere lo stile del carattere, mantenendo nel frattempo il resto dello stile aerodinamico.

mi piacerebbe provare l'aggiunta di questo nel vostro dizionario risorse:

<FontFamily x:Key="YourFont">Tahoma</FontFamily> 

usare queste informazioni per il tuo stile:

<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}" x:Key="RedTextBasedOnButton"> 
    <Setter Property="FontFamily" Value="{StaticResource YourFont}"/> 
</Style> 

Così si potrebbe cambiare il FontFamily sulla base di un singolo tasto.

vi consiglio di guardare questo http://wpfthemes.codeplex.com/SourceControl/latest#WPF.Themes.Demo/Window1.xaml