2012-08-30 8 views
8

Tüm alt öğelerin Foreground rengini Grid'da Grid'in Stilinden nasıl ayarlayabilirim? Bunu daha önce yaptığımı biliyorum, ama nerede olduğunu nasıl hatırlayamıyorum.Kılavuzdaki herhangi bir alt öğenin ön plan rengini Izgara'nın stilinden nasıl ayarlayabilirim?

<Style x:Key="MyGridStyle" TargetType="{x:Type Grid}"> 
    // I want to set the font color here 
</Style> 

<Grid Style="{StaticResource MyGridStyle}"> 
    ... 
</Grid> 

ben değil de, Style bu değeri ayarlamak istediğiniz ancak Grid

cevap

13

bunu çözdü, sadece varsayılan stili ayarlamak gerekir ben

<Grid.Resources> 
    <Style TargetType="{x:Type TextBlock}"> 
     <Setter Property="Foreground" Value="Red" /> 
    </Style> 
    <Style TargetType="{x:Type TextBox}"> 
     <Setter Property="Foreground" Value="Red" /> 
    </Style> 
</Grid.Resources> 

kullanabilirsiniz biliyorum <Style.Resources>

<Style x:Key="MyGridStyle" TargetType="{x:Type Grid}"> 
    <Style.Resources> 
     <Style TargetType="{x:Type TextBlock}"> 
      <Setter Property="Foreground" Value="Red" /> 
     </Style> 
     <Style TargetType="{x:Type TextBox}"> 
      <Setter Property="Foreground" Value="Red" /> 
     </Style> 
    </Style.Resources> 
</Style> 
+2

Bu işler, ancak ideal değildir. – ANeves

13

ne dersiniz:

<Style x:Key="MyGridStyle" TargetType="{x:Type Grid}"> 
    <Setter Property="TextElement.Foreground" Value="Red"/> 
</Style> 
+0

Bu, sadece TextBlocks için çalışır. '' işlevini kullanarak 'TextBoxes' ve diğer kontrolleri de kullanmamı sağlar. Paneliniz sadece 'TextBlock' öğeleri içeriyorsa temizlemenin daha temiz bir yolu için +1 yapın + – Rachel

+2

@Rachel: Cheating! Goalposts taşındı ... –

+0

lol evet, Ben TextBlock elemanları ile test ediyordum ama benim gerçek Izgara 'TextBoxes' de içerir. Cevabını yayınlayana kadar ayrımı yapmayı düşünmedim :) – Rachel

İlgili konular