2011-11-03 15 views
6

c'è un modo per specificare qualcosa di simile in WPF:stili cascata in WPF (alla CSS)

CSS:

#someSpan input { color: #f1f1f1; } 
or 
span input { color: #f1f1f1; } 

senso, mi piacerebbe avere tutti gli elementi TextBlock all'interno di container segui lo stile x, senza dover applicare lo stile a ogni blocco di testo.

solo per chiarire, ho bisogno di fare qualcosa di simile in WPF.

che so l'attributo BasedOn di uno stile .. ma che non è proprio quello che sto cercando qui

alla ricerca di qualcosa di simile

<Style x:Key="FileItem" TargetType="{x:Type #SomeContainer TextBlock}"> 

o forse entro SomeContainer, aggiungere un TextBlock stile che si applica a tutti i suoi blocchi di testo

+0

Questo risolve il problema? http://stackoverflow.com/questions/5745001/xaml-combine-styles –

risposta

4

Per quanto riguarda l'ultima parte della domanda, se si desidera applicare uno stile a tutti gli TextBlock s all'interno di un determinato elemento, è sufficiente inserire lo Style all'interno di tali elementi. RCE:

<TextBlock /> <!-- unaffected --> 

<Grid> 
    <Grid.Resources> 
     <Style TargetType="TextBlock"> 
      <!-- ... --> 
     </Style> 
    </Grid.Resources> 

    <TextBlock /> <!-- will be styled --> 
</Grid> 

se avete i vostri stili memorizzati in un separato ResourceDictionary allora si può "importare" tutti per un particolare elemento fondendo dizionari risorse:

<Grid> 
    <Grid.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
        <ResourceDictionary Source="/Resources/MyOtherStyles.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Grid.Resources> 

    <TextBlock /> <!-- will be styled --> 
</Grid> 
+0

buon punto .. anche se ho tutti i miei stili definiti in un file .xaml separato. Suppongo di poter ancora puntare la definizione di cui sopra a una risorsa statica. .. –

+0

sì, questo praticamente fa quello che mi serve .. tuttavia vorrei ancora non dover creare sostituzioni locali per ogni elemento ...