我在Silverlight应用程序项目上工作。最近我遇到并试图解决的一个错误是,当将一个颜色应用到PasswordBox中的CaretBrush时 - 无论是作为直接十六进制数还是作为静态资源 - 插入符号的闪烁会导致其他PasswordBox和一些随机TextBlocks在屏幕上一致闪烁。
<Style TargetType="PasswordBox">
<Setter Property="CaretBrush" Value="{StaticResource MarkerBrush}" /> <Setter Property="Background" Value="{StaticResource MainBrush}" />
<Setter Property="Foreground" Value="{StaticResource MarkerBrush}" />
<Setter Property="Margin" Value="0 4" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="ToolTipService.ToolTip" Value="{Binding Text, RelativeSource={RelativeSource Self}}" />
</Style>
此特定StaticResource画笔的目的是用户可以选择翻转到黑屏,其中黑色文本变为白色,因此黑色插入符号也需要反转。当没有颜色应用于插入符号时,其他字段闪烁没有问题,但插入符号仍然是黑色 - 在深色背景上很难看到。当如上所示应用颜色画笔,或者作为诸如#FF999999之类的值时,一旦插入值,屏幕上的其他PasswordBox会闪烁 - 以及shell中的TextBlocks(页眉和页脚) - 来自完全不同的XAML文档。此外,将焦点放在不同的字段上会导致PasswordBoxes中的值完全消失,直到焦点恢复到任何闪烁的PasswordBox。
奇怪的行为,仅在将颜色应用于PasswordBox样式时发生。有什么想法吗?
谢天谢地, John Gnotek