需要制作新的WPF控件并将Caret赋予它。 在WINFORMS或previos Windows UI中,使用WIN API Caret函数很容易,但现在在WPF中我们没有每个控件的hwnd所以......有没有办法做到这一点?
答案 0 :(得分:3)
在WPF中,插入符实际上是CaretElement,一个用于渲染选择块和插入符的内部FrameworkElement。
如果你没有继承某种已经提供插入符号支持并试图操纵它的控件,可悲的是,你可能需要从头开始实现它。
修改
CaretElement是框架内部的,是的,没有记录。
例如,提到here。
commercial包中存在闭源自定义实现。
答案 1 :(得分:1)
WPF中的Caret只是另一个动画,没有特殊的API。绘制一条线,并使用DoubleAnimation更改其不透明度。
如果你仔细看看WPF TextBox,插入符号甚至不会进行“像素反转”,它只是在字母上绘制的灰线。
通过实现像素着色器效果,您可以在WPF中进行像素反转。可能不值得。 VS2010 beta不会对文本插入符进行反转。
除TextBox / RichTextBox外,您还可以找到3个其他编辑组件: