2011-05-02 19 views
25

Quiero que mi TextBlock para mirar deshabilitado (en gris), pero cuando me puse IsEnabled propiedad en false no pasa nada, se queda negro:Cómo deshabilitar TextBlock?

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

¿Por qué?

También traté de usar Label pero su tamaño es más grande por alguna razón, por lo que arruinará todo mi diseño.

+8

La etiqueta tiene un relleno incorporado de 5px. Utilice

+3

En realidad esa fue la respuesta, usarán etiquetas en su lugar. – Poma

Respuesta

44

Esta sería la forma correcta de hacerlo con un TextBlock pienso:

<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

Puede jugar con Fondo y aplicar un Color del sistema.
Aquí hay un ejemplo para comenzar.

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

Su otra opción es probar la propiedad IsReadOnly del TextBox.

3

jugué un poco y descubrió que la mitad de la opacidad está dando la misma resultat como IsEnabled = "falso".

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

Ventaja: se adapta a todos los colores de primer plano.