【问题标题】:Windows Phone Textbox show caret in read only modeWindows Phone 文本框以只读模式显示插入符号
【发布时间】:2014-02-19 08:03:20
【问题描述】:

我使用默认文本框。我的要求是,我不希望键盘出现在文本框中。用户宁愿从我的 gui 的其他按钮修改文本。

但我希望用户可以选择插入符号索引并移动它,以便他们可以选择输入文本的位置。

所以,为了阻止键盘出现,我将文本框设为只读。 但我无法让它以只读模式显示插入符号索引。

我在.net框架文本框中看到,有一个属性叫做iscaretvisibleinreadonly mode。 但在 windows phone 文本框中没有这样的东西。

【问题讨论】:

    标签: c# windows-phone-8 textbox


    【解决方案1】:

    如果您想不显示键盘,则需要在不使用TextBox 的情况下构建您的解决方案。为获得一致的跨应用程序体验,键盘始终显示在 Windows Phone 上,并且无法通过编程控制。

    最近有人问过类似的question,但答案并不准确。

    此时最好的答案可能是为您的应用程序考虑替代 UI。

    但是,一个技巧是尝试使用TextBlock 来模拟基础知识。您需要测量每个字符的位置,当点击TextBlock 时,在两个字符之间放置一个矩形(然后使用动画开始闪烁)。如果文本可能不合适,复杂性就会增加,边缘情况的机会也会增加。此外,您可能希望处理文本字段中的复制和粘贴等操作。

    由于您的 cmets 表明您想要构建电话拨号键盘,我建议您改为考虑使用:

    <TextBox InputScope="TelephoneCountryCode" />
    

    结果将如下所示:

    还有其他选项可用于记录here 的电话键盘。

    由于此拨号键盘将成为 Windows Phone 用户的标准体验,因此他们无需在您的应用程序中学习另一个键盘,而且它的细微差别。

    以 iOS 上的 Google Voice 为例,他们选择实现自己的键盘。但是,您可能会注意到它们不支持定位文本输入光标。用户可以粘贴数字和删除数字。

    【讨论】:

    • 我准备好使用文本块,但我没有在那里获得插入符号选项。那么有什么不同的 ui 选项,我可以同时使用插入符号来选择起点并且不弹出键盘?
    • 我不知道你的应用程序的其余部分,所以很难说什么可行。您需要什么类型的按钮。按钮、文本框和内置键盘都适合吗?
    • 实际上我正在构建一个自定义拨号器,我有 12 个按钮,点击这些按钮,我会更新我的文本框文本,所以基本上我唯一的要求是,文本框不会弹出任何键盘并且会有插入符号选项。
    • 许多拨号器没有光标——也许你不需要一个? :)
    • 不,我需要一个,因为用户可能想在拨号前添加国家代码或其他前缀。
    猜你喜欢
    • 2019-03-29
    • 2012-03-06
    • 1970-01-01
    • 2019-07-09
    • 2015-09-10
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多