5

需要创建一个新的 WPF 控件并为其添加插入符号。在 WINFORMS 或 previos Windows UI 中,使用 WIN API Caret 函数很容易,但现在在 WPF 中,我们没有每个控件的 hwnd 所以......有没有办法做到这一点?

4

2 回答 2

3

在 WPF 中,插入符号实际上是 CaretElement,它是用于呈现选择块和插入符号的内部 FrameworkElement。

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

编辑

CaretElement 在框架内部,是的,没有记录。

例如,这里提到了它。

商业包中存在闭源自定义实现。

于 2009-07-19T21:36:52.240 回答
1

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

如果您仔细查看 WPF 文本框,插入符号甚至不会进行“像素反转”,它只是在字母上绘制的灰线。

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

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

  • Expression Blend 代码编辑器
  • Visual Studio 2010 代码编辑器
  • SharpDevelop 4 代码编辑器
于 2009-07-19T21:38:19.943 回答