再次坚持改变我的文本框的背景颜色,但奇怪的部分是forground工作正常但不是背景。
这是我的xaml
<TextBox
Name="tbHeadline"
Text="{Binding SelectedStory.Headline, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{StaticResource ErrorTemplate}"
Grid.Column="1"
Grid.Row="6"
TextWrapping="NoWrap"
d:LayoutOverrides="Height"
Grid.ColumnSpan="2"
HorizontalAlignment="Stretch"
LostFocus="tbHeadline_LostFocus"
/>
在我的Xaml.cs
中我有以下代码
tbHeadline.Background = Brushes.Gray; //this not working
tbHeadline.Foreground = Brushes.Gray; //this is working
这是示例输出
谢谢你的帮助。
从专家评论更新
好的,我在网格中添加了一个文本框,这就是它的样子
<TextBox Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="10" Grid.RowSpan="2" Height="23" HorizontalAlignment="Left" Margin="50,14,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Background="#E6000000" />
即使我将背景颜色设置为黑色,但在运行应用程序时它不可见。
答案 0 :(得分:3)
您的代码段应该有效。您可以通过创建空白项目,删除TextBox并在代码中设置颜色来进行测试。使用Snoop查看tb的背景是以不同的方式设置还是以不同的方式设置。
答案 1 :(得分:3)
在总结我们在Chat中的讨论时,您有一个覆盖TextBox背景画笔的默认样式。我建议您将TextBox的默认样式设置为Null作为此SO question suggests的答案。您可以在TextBox的Code Behind或Xaml声明中执行此操作。
tbHeadline.Style = null;
或在您的Xaml中
<TextBox Name="tbHeadline" Style=""
Text="{Binding SelectedStory.Headline, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True, NotifyOnValidationError=True, ValidatesOnDataErrors=True}"
Validation.ErrorTemplate="{StaticResource ErrorTemplate}"
Grid.Column="1"
Grid.Row="6"
TextWrapping="NoWrap"
d:LayoutOverrides="Height"
Grid.ColumnSpan="2"
HorizontalAlignment="Stretch"
LostFocus="tbHeadline_LostFocus" />
答案 2 :(得分:2)
您的代码段应该有效。只需将样式设置为null,就像这样
<TextBox Style ={x:Null} Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="10" Grid.RowSpan="2" Height="23" HorizontalAlignment="Left" Margin="50,14,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Background="#E6000000" />
答案 3 :(得分:0)
尝试tbHeadline.Background = new SolidColorBrush(Colors.Gray);