Подтвердить что ты не робот

Как отключить TextBlock?

Я хочу, чтобы мой TextBlock выглядел отключенным (выделено серым цветом), но когда я устанавливал свойство IsEnabled на false, ничего не происходит, он остается черным:

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

Почему это?

Также я попытался использовать Label, но по какой-то причине размер больше по размеру, поэтому он испортит все мои макеты.

4b9b3361

Ответ 1

Это был бы правильный способ сделать это с помощью TextBlock, я думаю:

<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

Я немного поиграл и обнаружил, что половина непрозрачности дает тот же результат, что и IsEnabled = "False".

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

Преимущество: оно подходит для каждого цвета переднего плана.

Ответ 3

Вы можете играть с фоном и применять SystemColor.
Вот пример, чтобы вы начали.

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

Другой вариант - попробовать свойство IsReadOnly для TextBox.