【问题标题】:How to create custom textbox in windows phone 7?如何在 Windows Phone 7 中创建自定义文本框?
【发布时间】:2012-04-01 21:53:54
【问题描述】:

是否可以通过创建自定义文本框来处理 sip。

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

要求:

  1. 如何创建自定义文本框?
  2. 打开自定义键盘而不是 SIP
  3. 在文本字段中获取光标。

【问题讨论】:

    标签: silverlight windows-phone-7 custom-controls sip


    【解决方案1】:

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

    要创建自定义 TextBox,您可以从继承 TextBox 本身开始,但您可能会发现自己与默认实现作斗争,因此您可能只想从 Control 继承。

    要打开自定义 SIP 而不是默认 SIP,您需要将其绑定到自定义 TextBox 上的一个事件中,这是从 Control 继承可能会让您的生活更轻松的地方之一,因为如果您继承来自 TextBox,然后一旦获得焦点,默认 SIP 就会显示。您可能希望为 PhoneApplicationFrame 制作 ControlTemplate 的 SIP 部分,以便保证它位于页面内容之上。

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

    要实现听起来很简单的事情需要做大量的工作,我怀疑这就是为什么还没有人这样做的原因 :) 我绝对建议在官方 WP7 Dev UserVoice forum 上将其作为功能请求

    【讨论】:

    • 你好,很抱歉打断你。你有这种情况的解决方案吗?我已经拿了一个文本框->在它上面放置了一个透明画布->在画布上添加一个 Line 对象(以显示光标)->文本框的 OnGotFocus ->将焦点转移到其他一些控件上(因此 SIP 不会显示>- > 现在在文本更改事件上,我尝试在画布上移动线条,因此它应该显示为光标。但问题是我如何才能获得文本字段中 textchanged 上的字母所占用的像素数。是否有一些工作可以解决它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多