TextBox Caret Styling - PullRequest
       28

TextBox Caret Styling

17 голосов
/ 15 февраля 2012

Я нашел несколько вещей по настройке CaretBrushes в WPF4, но кто-нибудь вообще менял карету?

Я бы хотел использовать каретку OVERWRITE в режиме INSERT. Я видел хак из .Net 3,5 раза , но он не работает и не имеет реального движения курсора ...

Было бы замечательно, если бы у Карета был Шаблон - Это соответствовало бы всей идее WPF ...

Любой совет?

Ответы [ 2 ]

36 голосов
/ 15 апреля 2012

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>

Я также пытался использовать визуальную кисть, но каретка всегда отображается в виде маленькой вертикальной линии.

8 голосов
/ 25 августа 2013

Поскольку в каркасе используется инверсия цвета фона, чтобы установить цвет каретки, если вы установите свойство Background в {x: Null}, вы получите черную каретку по умолчанию, которая начерный фон может быть особенно трудно увидеть!

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

Простое решение этой проблемы - указать значение для свойства Background.В случае, если у вас черный фон и вам нужна белая каретка, вы можете установить значение свойства Background равным # 00000000, которое является абсолютно прозрачным черным (если это имеет смысл!).Кажется, каркас игнорирует компонент непрозрачности цвета, поэтому вы получаете прозрачный фон и белую каретку!

И еще одна ссылка: http://blogs.msdn.com/b/llobo/archive/2007/02/08/changing-caret-color-in-textbox.aspx

...