2011-11-03 77 views
6

有没有办法在WPF指定这样的事情:层叠样式

CSS:

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

意义,我想有容器中的所有元素的TextBlock按照x风格,w/out必须将样式应用于每个文本块。

只是为了澄清,我需要在WPF中做这样的事情。

我知道一个风格的支持算法FMP属性..但是这并不完全是我正在寻找在这里

寻找这样的事情

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

或也许,增加一个TextBlock将适用于所有文本块的样式

+0

这是否解决了这个问题? http://stackoverflow.com/questions/5745001/xaml-combine-styles –

回答

4

关于您的问题的最后部分,如果您想将样式应用于特定元素中的所有TextBlock s,只需将Style放入该元素中即可RCE中:

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

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

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

如果你已经储存在一个单独ResourceDictionary你的风格,那么你可以通过“导入”所有这些特定元素通过合并资源字典:

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

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

好点..虽然我有所有我的风格定义在一个单独的.xaml ..我想我仍然可以将上述定义指向一个静态资源。 .. –

+0

是的,这几乎做我需要..但是我仍然希望我不必为每个元素创建本地覆盖...