如何在AutoSuggestBox中设置文本光标的位置?

问题描述:

我有一个AutoSuggestBox需要大写输入,而用户输入它。问题是当我将文本设置为大写字母时,光标将移动到文本末尾。在更改文本并在之后设置选择之前,我需要确定光标的位置。如何在AutoSuggestBox中设置文本光标的位置?

在Android中,我会为此使用SelectionStart和SetSelection函数,但AutoSuggestBox似乎没有这样的东西。 TextBox具有SelectionStart和SelectionLength属性和一个选择功能。也许AutoSuggestBox有一个我需要以某种方式访问​​的孩子的TextBox?

许多TextBox属性和方法不通过AutoSuggestBox公开。你可以抓住的控制模板中的文本框的东西,如:

TextBox textBox = this.AutoSuggestBox.GetDescendants<TextBox>().FirstOrDefault(); 

GetDescendants(),在这种情况下,仅仅是一个辅助函数,它的VisualTreeHelper优势抓取树,查找指定的类型(抽象化了的简单)。

理想情况下,您可以在OnApplyTemplate()中执行此操作,但由于AutoSuggestBox已密封,因此无法重写此方法。这取决于你如何组织你的UI,当你需要访问文本框,你可能需要明确地拨打电话,以UpdateLayout()确保文本框通过GetDescendants()是可用:

this.AutoSuggestBox.UpdateLayout(); 
+0

感谢这个作品,但我需要添加一个名为WinRTXamlToolkit的Nuget包,然后才能访问子代。 – Slepz