如何将插入符号分配给WPF中的控件

如何将插入符号分配给WPF中的控件,wpf,user-controls,wpf-controls,caret,Wpf,User Controls,Wpf Controls,Caret,需要创建一个新的WPF控件并为其提供插入符号。 在WINFORMS或previos Windows UI中,使用WIN API插入符号函数很容易,但现在在WPF中,我们没有针对每个控件的hwnd,因此。。。有办法吗?在WPF中,插入符号实际上是CaretElement,一种用于呈现选择块和插入符号的内部框架元素 如果您没有继承某种已经提供插入符号支持的控件并尝试对其进行操作,那么很遗憾,您可能需要从头开始实现它 编辑 护理服务是框架内部的,是的,没有记录 例如,有人提到过它 包中存在一个封闭源代

需要创建一个新的WPF控件并为其提供插入符号。
在WINFORMS或previos Windows UI中,使用WIN API插入符号函数很容易,但现在在WPF中,我们没有针对每个控件的hwnd,因此。。。有办法吗?

在WPF中,插入符号实际上是CaretElement,一种用于呈现选择块和插入符号的内部框架元素

如果您没有继承某种已经提供插入符号支持的控件并尝试对其进行操作,那么很遗憾,您可能需要从头开始实现它

编辑

护理服务是框架内部的,是的,没有记录

例如,有人提到过它


包中存在一个封闭源代码的自定义实现。

WPF中的插入符号只是另一个动画,没有专门的API。绘制一条线,并使用DoubleAnimation更改其不透明度

如果你仔细观察WPF文本框,插入符号甚至不做“像素反转”,它只是在字母上画一条灰线

通过实现像素着色器效果,可以在WPF中进行像素反转。可能不值得。VS2010测试版不会对文本插入符号进行反转

除了TextBox/RichTextBox,您还可以找到3个其他编辑组件:

  • 表达式混合代码编辑器
  • VisualStudio2010代码编辑器
  • SharpDevelop4代码编辑器

CaretElement没有文档记录,甚至不可访问,对吗?为了完整性,编辑了答案。我写了一篇文章解释如何在WPF中创建一个好的,这很棘手。。。然后文本应该由TextInput事件以及Preview/KeyDow/UP事件处理。从头开始是一场噩梦。。。。谢谢你的帮助。你们所有人。相关:。。。虽然没有直接的方法来检索WPF中的插入符号闪烁频率,而不是使用p/援引或引用WiFras(为您自己决定哪一个您认为较小的邪恶),WPF的<代码> StasePosits < /Cord>类确实提供了一个字段。