Существует способ изменить цвет каретки путем повторного добавления текстового поля.Каретка мигает не путем изменения ее цвета между черным и белым, а путем изменения ее цвета между цветом фона и значением XOR цвета фона (первый абзац в разделе «Подробнее» здесь лучше объясняет, что делает окноморгать кареткой).Это относится к собственному текстовому полю и должно применяться к любой «пользовательской» письменной каретке, чтобы обеспечить соответствие стиля look'n'feel стандартам Windows.
Для WPF существует небольшой обходной путь, который можно изменитьцвет каретки:
<TextBox Background="Yellow">
<TextBox.Template>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border x:Name="Border">
<ScrollViewer Margin="0" x:Name="PART_ContentHost" Style="{DynamicResource SimpleTextScrollViewer}" />
</Border>
</ControlTemplate>
</TextBox.Template>
</TextBox>
Таким образом, вы устанавливаете цвет фона (желтый), каретка будет мигать между этим цветом и XOR желтым (синим), но желтый фон никогда не будет отображаться(потому что шаблон не заботится о цвете фона).(приведенный выше код является лишь примером, показывающим, что я имею в виду, он не содержит всех визуальных элементов обычного текстового поля, но их можно легко добавить).