不在焦点时更改TextBox的背景

时间:2015-11-03 09:01:36

标签: c# xaml background textbox uwp

我在XAML文件中有一个TextBox,我想更改背景颜色,因为当框不在焦点时,默认颜色为灰色。 更改背景属性似乎不起作用,我不明白如何在模板中更改它。

这就是它现在的样子

This is how it looks now

这就是我想要的样子

And this is how I want it to look always

2 个答案:

答案 0 :(得分:3)

您必须使用 TextBox的样式(attached here)。您会找到 BackgroundElement ,您可以更改其背景不透明度,例如:

<Border x:Name="BackgroundElement" Background="{TemplateBinding Foreground}" Grid.ColumnSpan="2" Margin="{TemplateBinding BorderThickness}" Opacity="1" Grid.Row="1" Grid.RowSpan="1"/>

当控件处于未聚焦状态时,这应该为您提供前景色,但是当它变得不可见时,您还必须更改占位符的颜色。尝试使用 VisualStates 来播放适当的状态,包括聚焦/未聚焦(正常)以外的其他状态。

答案 1 :(得分:1)

您需要编辑控件模板。最方便的方法是在混合中打开项目。每个控件都有其默认模板,其中包含常用交互的可视状态,如按下,拖动等。 请看这篇文章https://msdn.microsoft.com/en-us/library/jj170032.aspx 我认为这对你有帮助。