改变WinRT中的Caret颜色?

时间:2012-09-11 20:42:58

标签: wpf silverlight microsoft-metro windows-runtime

因此,在WPF和Silverlight中,您可以使用TextBox.CaretBrush为TextBox设置插入颜色,但在WinRT中,他们似乎完全删除了此属性。所以现在如果TextBox是深色,因为它将插入符号颜色默认为黑色而你看不到它,如果TextBox的背景颜色是黑色,则插入符号不再完全存在。我发现这完全不合逻辑,必须有一种方法来改变插入符号颜色,无论是实用还是其他?

有没有人有任何想法?

3 个答案:

答案 0 :(得分:3)

这是不可能的。 <{3}}当您的TextBox具有焦点时,将其切换到浅色背景,以便可以看到插入符号。

答案 1 :(得分:1)

关于这个问题的派对有点晚了但是我遇到了同样的问题并找到了一个简单的解决方法。在Windows 8.1 RT预览中,我注意到覆盖TextBoxForegroundThemeBrush会更改TextBox的插入符号或光标颜色。

<SolidColorBrush x:Key="TextBoxForegroundThemeBrush" Color="#FFFFFFFF" />

通常,即使重写Style和ControlTemplate,光标也始终为黑色。我碰巧在查看Filip上面提到的ThemeResources.xaml时偶然发现了这一点。我不确定这是否适用于8.1之前的xaml,微软似乎已经在新SDK中进行了大量清理。

答案 2 :(得分:0)

我通过覆盖TextBox的透明画布,使用SelectionStart和GetRectFromCharIndex来获取坐标,然后在KeyDown,KeyUp和MouseDown上设置了Line的坐标并使用TranslateTransform移动它,效果很好而且表现太棒了!

不知道为什么我没有先尝试过这个,我之前已经多次在Silverlight和WPF中完成了Transforms。我想WinRt中的细微差别让我陷入了一个循环......