TextBox Caret Styling



我发现了一些关于在WPF4中设置CaretBrushes的东西,但有人真的改变过插入符号本身吗?

我想做的是在INSERT模式下使用OVERWRITE插入符号。我已经看到了3.5次来自.Net的黑客攻击,但它没有表现出来,而且缺乏实际的光标移动。。。

如果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,但插入符号总是显示为一条小的垂直线。

因为框架使用背景颜色的倒数来设置插入符号的颜色,如果将Background属性设置为{x:Null},那么最终将使用默认的黑色插入符号,在黑色背景上可能特别难看到!

http://www.codeproject.com/Articles/34736/Changing-the-Caret-Colour-in-WPF

这个问题的简单解决方案实际上是为Background属性指定一个值。如果您有黑色背景,并且需要白色插入符号,您可以将background属性的值设置为#000000000,它是完全透明的黑色(如果有意义的话!)框架似乎忽略了颜色的不透明度分量,因此您最终得到的是透明背景和白色插入符号!

结论:您必须指定具有不透明度的背景属性来控制插入符号样式。

相关内容

  • 没有找到相关文章

最新更新