我想在WPF文本块中灰显文本。我怎么做到的?
此致 拉朱
答案 0 :(得分:7)
在C#上:
textBox.Foreground = Brushes.Gray;
在XAML上:
<TextBox Foreground="Gray" />
要禁用它(也会改变背景):
textBox.IsEnabled = false;
答案 1 :(得分:5)
您可以将TextBlock.Foreground属性设置为任何颜色(技术上,任何画笔)。如果你想让它变灰,只需设置:
<TextBlock Text="Foo" Foreground="Gray" />
如果您希望它看起来“已禁用”,则可以将IsEnabled设置为false:
<TextBlock Text="Foo" IsEnabled="false" />
答案 2 :(得分:4)
IsEnabled
的{{1}}标记不会使文字变灰。 This post详细说明了textblock
和标签之间的差异。它还显示XAML在textblock
上添加触发器以使文本变灰。
答案 3 :(得分:3)
TextBlocks在禁用时不会自动变灰
您可以使用样式来为您完成
<Style x:Key="DisableEnableTextBlock" TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="True">
<Setter Property="Opacity" Value="1" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value=".5" />
</Trigger>
</Style.Triggers>
</Style>
答案 4 :(得分:1)
使用TextBox的麻烦在于它周围有一个方框。如果您使用Label(Content =&#34; Foo&#34;),则可以使用IsEnabled切换文本颜色。否则,它的行为类似于TextBlock的短标题/标签。
答案 5 :(得分:-2)
改用TextBox并设置IsReadOnly = true
或IsEnabled = false