在WP7中更改聚焦文本框背景/前景
每当文本框被聚焦时,文本的边框和前景都会根据当前主题进行更改:
主题灯 – >边框:黑色,文字:白色,背景:透明
主题黑暗 – >边框:白色,文字:白色,背景:白色
我希望文本框始终有边框:白色,文字:白色,背景:透明
我可以在文本框未聚焦时控制这些设置,但是当它具有焦点时我无法更改背景。
文本框的XML是:
您可以使用模板覆盖默认样式:
我使用Expression Blend获取默认模板,然后通过删除(注释掉)改变了Focused
VisualState
BorderBrush
的ObjectAnimationUsingKeyFrames
元素来修改它。 将此样式应用于TextBox
并将其BorderBrush
更改为您的颜色。
最简单的方法是在GotFocus上设置事件。
TextBox的XamlCode:
GotFocusAction的Codebehind:
private void GotFocusaAction(object sender, System.Windows.RoutedEventArgs e) { InputUserName.Background = new SolidColorBrush(Colors.LightGray); InputUserName.BorderBrush = new SolidColorBrush(Colors.LightGray); }
如果要将聚焦TextBox的颜色设置为其他颜色,还应设置“LostFocus事件”以更改BackgroundColor。
TextBox的XamlCode:
Codebehind:
private void GotFocusaAction(object sender, System.Windows.RoutedEventArgs e) { InputUserName.Background = new SolidColorBrush(Colors.Purple); InputUserName.BorderBrush = new SolidColorBrush(Colors.Purple); } private void LostFocusAction(object sender, System.Windows.RoutedEventArgs e) { InputUserName.Background = new SolidColorBrush(Colors.Red); InputUserName.BorderBrush = new SolidColorBrush(Colors.Red); }
显然你不能在聚焦时改变文本框的背景,而不是在黑暗的主题中(它甚至在系统的集成文本框中也是如此)。
所以我想出了一个解决我问题的解决方案,
我创建了两个正好在彼此之上的文本框实例,并将前面的不透明度更改为等于0(完全不可见)。
然后我通过代码连接两个文本框,这样如果正在键入前面的那个(它是不可见的,所以没有人会看到正在写的文本)我编辑后面的文本完全相同。
您需要评论更大的区域:
上述就是C#学习教程:在WP7中更改聚焦文本框背景/前景分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1013030.html