在UWP应用中使用TextBox时是否可以重新编程Tab键的功能?如果您使用OneNote的UWP版本,您会发现有可能...好吧,我不能肯定地说,因为是Microsoft自己编写了该应用程序,所以也许他们只是赋予了自己覆盖它的能力? / p>
但是我的目标只是在TextBox或RichEditBox具有焦点时对键进行编程。我想让用户能够简单地按Tab键并缩进文本或项目符号,而不必另外按住Control键。但是按现状,默认情况下,当您按下Tab键时,编辑器将失去焦点,而下一个UI元素将获得焦点。烦死了-_- 但是谢谢。
答案 0 :(得分:0)
有example on msdn的一些解决方法。但是,没有更多的CaretIndex
属性,因此您需要使用SelectionStart
:
private void UIElement_OnPreviewKeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.OriginalKey == VirtualKey.Tab)
{
var txtBox = (TextBox)sender;
//No CaretIndex property anymore, you need to use SelectionStart
var caretPos = txtBox.SelectionStart;
txtBox.Text = txtBox.Text.Insert(caretPos, " ");
txtBox.SelectionStart = caretPos + 4;
//Remember to set Handled to avoid OS handle Tab key
e.Handled = true;
}
}
这是一种解决方法,因此,我建议您尝试找到一些开源的“ uwp富文本框”,然后从那里得到启发。
无论如何,上述解决方案非常快速且易于实现。