我发现了一些关于在WPF4中设置CaretBrushes的内容,但是有人真正改变过光标本身吗?
我想要做的是在INSERT模式下使用OVERWRITE光标。我看到了一个.NET 3.5时代的hack,但它性能不佳,落后于实际光标移动...
如果Caret有一个模板就好了 - 那将与整个WPF理念保持一致...
有什么建议吗?
我发现了一些关于在WPF4中设置CaretBrushes的内容,但是有人真正改变过光标本身吗?
我想要做的是在INSERT模式下使用OVERWRITE光标。我看到了一个.NET 3.5时代的hack,但它性能不佳,落后于实际光标移动...
如果Caret有一个模板就好了 - 那将与整个WPF理念保持一致...
有什么建议吗?
CaretElement是一个内部密封类,无法通过数据模板进行自定义。但至少可以更改插入符画笔的颜色。
<TextBox Text="This is some random text" CaretBrush="Blue" />
如果你想在描边刷上使用线性渐变,这是可以实现的。
<TextBox Text="This is some random text" FontSize="20">
<TextBox.CaretBrush>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<LinearGradientBrush.GradientStops>
<GradientStop Color="Blue" Offset="0" />
<GradientStop Color="Red" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</TextBox.CaretBrush>
我尝试使用Visual Brush,但插入符号始终显示为一条小垂直线。
http://www.codeproject.com/Articles/34736/Changing-the-Caret-Colour-in-WPF
这个问题的简单解决方案是实际上指定背景属性的值。在您有黑色背景并且想要白色插入符号的情况下,您可以将Background属性的值设置为#00000000,这是完全透明的黑色(如果有意义的话!)。该框架似乎忽略颜色的不透明度组件,因此您最终会得到一个透明的背景和一个白色的插入符号!