2011-04-16 104 views
2

是否可以通过创建自定义文本框来处理SIP。如何在Windows Phone 7中创建自定义文本框?

我想创建自定义文本框 - >创建获得的焦点事件 - >在我的自定义文本框的焦点而不是SIP我的自定义小键盘应该打开。

要求:

  1. 如何创建自定义文本框?
  2. 打开自定义小键盘而不是SIP
  3. 将光标放到文本框中。

回答

1

SIP的显示由操作系统处理,并且始终位于任何应用程序的可视树顶部。如果您想提供自定义SIP,则需要提供备用输入控件,因为本地SIP的显示与输入控件绑定(如TextBox,PasswordBox等)。您可能会发现这篇关于creating a Bulgarian keyboard的文章很有用。

创建自定义TextBox你可以通过TextBox本身继承开始,但你可能会发现自己对抗的默认实现,所以你可能只是想从Control,而不是继承。

要打开自定义SIP而不是默认的SIP,您需要将其绑定到您的自定义TextBox上的事件,这是从Control继承的地方可能会使您的生活更轻松的地方之一,因为如果你从TextBox继承,然后只要它收到焦点,默认的SIP将显示。您可能需要将PhoneApplicationFrame的ControlTemplate的SIP部分设置为可以保证其位于页面内容之上。

要在您的自定义文本框中获得游标,您需要自己处理插入符号的显示并在用户键入自定义SIP时更新它。

这是一个可怕的很多工作来实现的东西,听起来很简单,我怀疑的是,为什么没有人做这些事的:)我肯定会推荐,请求其作为官方WP7 Dev UserVoice forum

+0

喜莱金功能,比较遗憾打断你。你有这种情况下的一些解决方案。我已经采取了一个文本框 - >放置一个透明的画布 - >在画布上添加一个线对象(显示光标) - > OnGotFocus的文本框 - >将焦点转移到其他控件(所以SIP不会显示> - >现在在文本更改事件我试图移动画布上的行,所以它应该显示为光标。但问题是,我怎么能得到字母占用的文本字段textchanged上的字母不是。是否有一些工作,以获得它。 – rubyraj 2011-04-20 10:38:15

相关问题