2014-03-07 28 views
2
的孩子的TextBlocks

假設我有如下佈局:應用樣式一切在StackPanel中

<Grid> 

    <TextBlock........ /> 
    <StackPanel> 
     <TextBlock ...../> 
     <!--Other Elements--> 
    </StackPanel> 

    <TextBlock........ /> 
    <StackPanel> 
     <TextBlock ...../> 
     <!--Other Elements--> 
    </StackPanel> 

    <TextBlock........ /> 
    <StackPanel> 
     <TextBlock ...../> 
     <!--Other Elements--> 
    </StackPanel> 

</Grid> 

現在我要像下面樣式應用於所有的都在上面的StackPanel的兒童的TextBlocks上述佈局。

<Style TargetType={x:Type TextBlock}> 
    <Setter Property="FontSize" Value="20" /> 
<Style> 

回答

5

第一種方法:

例1:

<Window.Resources> 
    <Style TargetType="StackPanel"> 
     <Style.Resources> 
      <Style TargetType="TextBlock"> 
       <Setter Property="FontSize" Value="20" />      
      </Style> 
     </Style.Resources> 
    </Style> 
</Window.Resources> 

<StackPanel> 
    <TextBlock/>     
</StackPanel>   
<StackPanel> 
    <TextBlock />     
</StackPanel> 

例2:如果你想在特定的網格文本塊,StackPanel的

<Window.Resources> 
    <Style x:Key="Textblockstyle" TargetType="Grid"> 
     <Style.Resources> 
      <Style TargetType="StackPanel"> 
       <Style.Resources> 
        <Style TargetType="TextBlock"> 
         <Setter Property="FontSize" Value="20" /> 
         <Setter Property="Foreground" Value="Green"/> 
        </Style> 
       </Style.Resources> 
      </Style> 
     </Style.Resources> 
    </Style> 
</Window.Resources> 

<Grid> 
    <StackPanel Height="100" VerticalAlignment="top" Width="100"> 
     <TextBlock Text="Another Grid" /> 
    </StackPanel> 
    <Grid Style="{StaticResource Textblockstyle}"> 
     <StackPanel Height="100" HorizontalAlignment="Left" Width="100"> 
      <TextBlock Text="Textblock1" /> 
     </StackPanel> 
     <StackPanel Height="100" HorizontalAlignment="Right" Width="100"> 
      <TextBlock Text="Textblock2"/> 
     </StackPanel> 
    </Grid> 
</Grid> 

第二種方法:在StackPanel中

<Window.Resources> 
    <Style x:Key="Textblockstyle" TargetType="TextBlock"> 
     <Setter Property="FontSize" Value="20" /> 
     <Setter Property="Foreground" Value="Green"/> 
    </Style> 
</Window.Resources> 

<StackPanel> 
    <TextBlock Text="abc" Style="{StaticResource Textblockstyle}"/> 
    <!--Other Elements--> 
</StackPanel> 
+0

例2在你的答案提供樣式名稱的每一個文本塊可以幫助我解決我的問題。感謝Heena給出了一個很好的答案。 – Vishal