2011-11-03 73 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

是的,這幾乎做我需要..但是我仍然希望我不必爲每個元素創建本地覆蓋...