Csharp/C#教程:在WP7中更改聚焦文本框背景/前景分享


在WP7中更改聚焦文本框背景/前景

每当文本框被聚焦时,文本的边框和前景都会根据当前主题进行更改:

主题灯 – >边框:黑色,文字:白色,背景:透明

主题黑暗 – >边框:白色,文字:白色,背景:白色

我希望文本框始终有边框:白色,文字:白色,背景:透明

我可以在文本框未聚焦时控制这些设置,但是当它具有焦点时我无法更改背景。

文本框的XML是:

 

您可以使用模板覆盖默认样式:

  

我使用Expression Blend获取默认模板,然后通过删除(注释掉)改变了Focused VisualState BorderBrushObjectAnimationUsingKeyFrames元素来修改它。 将此样式应用于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

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐