2011-05-02 23 views
25

chcę mój TextBlock wyglądać wyłączone (wyszarzone), ale kiedy ustawić IsEnabled własności do fałszywego nic się nie dzieje, to pozostanie czarny:Jak wyłączyć blokadę tekstu?

<TextBlock Text="test" IsEnabled="False" /> 

Dlaczego tak jest?

Próbowałem również użyć Label, ale jego rozmiar jest większy z jakiegoś powodu, więc zepsuje cały mój układ.

+8

Etykieta ma wbudowane wypełnienie 5px. Użyj

+3

Właściwie to była odpowiedź, zamiast tego użyje etykiet. – Poma

Odpowiedz

44

Byłby to właściwy sposób to zrobić z TextBlock myślę:

<TextBlock Text="Lorem ipsum dolor sit"> 
    <TextBlock.Style> 
     <Style TargetType="{x:Type TextBlock}"> 
      <Style.Triggers> 
       <Trigger Property="IsEnabled" Value="False"> 
        <Setter Property="Foreground" 
          Value="{StaticResource {x:Static SystemColors.GrayTextBrushKey}}"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 
2

Możesz grać w tle i zastosować kolor systemowy.
Oto przykład, aby zacząć.

<TextBlock IsEnabled="True" 
     Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}" 
     Name="textBlock" 
     Text="TEST TextBlock" 
     Height="30" /> 

Inną opcją jest wypróbowanie właściwości IsReadOnly w TextBox.

3

grałem trochę i okazało się, że pół krycie daje ten sam résultat jako IsEnabled = „false”.

<TextBlock Text="test" Opacity="0.5" /> 

Zaleta: pasuje do każdego koloru pierwszego planu.

Powiązane problemy