2

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

有没有人有任何想法?

4

3 回答 3

3

这是不可能的。您需要在 TextBox 具有焦点时将其切换为浅色背景,以便插入符号可见。

于 2012-09-11T21:46:43.957 回答
1

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

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

通常,光标始终为黑色,即使您覆盖了 Style 和 ControlTemplate。通过查看 Filip 上面提到的 ThemeResources.xaml,我偶然发现了这一点。我不确定这是否适用于 8.1 之前的 xaml,微软似乎已经在新的 SDK 中清理了很多。

于 2013-09-21T23:50:29.300 回答
0

我通过在 TextBox 上方覆盖透明画布来实现此功能,使用 SelectionStart 和 GetRectFromCharIndex 获取坐标,然后在 KeyDown、KeyUp 和 MouseDown 上设置 Line 的坐标并使用 TranslateTransform 移动它,效果很好,性能很好极好的!

不知道为什么我不先尝试这个,我之前在 Silverlight 和 WPF 中做过很多次变换。我想 WinRt 的细微差别让我陷入了一个循环......

于 2012-09-13T22:53:12.063 回答