Каретка в WPF - это просто еще одна анимация, для этого не нужно специального API. Нарисуйте линию и измените ее непрозрачность с помощью DoubleAnimation.
Если вы внимательно посмотрите на WPF TextBox, каретка даже не выполняет «инверсию пикселей», это просто серая линия, нарисованная над буквой.
Потенциально вы можете сделать инверсию пикселей в WPF, реализовав эффект пиксельного шейдера. Не стоит, наверное. Бета-версия VS2010 не выполняет инверсию для текстовой вставки.
Помимо TextBox / RichTextBox есть еще 3 компонента редактирования, которые вы можете найти:
- Редактор кода Expression Blend
- Редактор кода Visual Studio 2010
- Редактор кода SharpDevelop 4