【发布时间】:2014-12-20 21:27:34
【问题描述】:
我正在使用 C# 和 XAML RichEditBox 创建一个带有自定义键盘的文本编辑器。我需要能够模拟通常由内置键盘处理的功能。我希望能帮助您理解以下内容:
- 防止键盘出现(有一个属性可以防止它出现在程序焦点上,而不是用户焦点上。我也可以通过设置 IsReadOnly 属性来隐藏它,但是我无法修改文本)
- 处理退格。 Document.Selection 上有一个 Delete 功能,但它的作用是 Delete,而不是 Backspace(从错误的方向拉)
- 需要防止水平滚动。即使将 HorizontalScrollVisibility 设置为 Disabled,文本也会从侧面滚动。不知道还能在这里做什么。
很抱歉基本上把三个问题塞进了一个问题,但似乎有正确知识的人这样会更轻松。谢谢!
为了简单起见,这里是我当前的属性:
VerticalAlignment="Stretch" HorizontalAlignment="Stretch" AcceptsReturn="True" IsTextPredictionEnabled="False" PreventKeyboardDisplayOnProgrammaticFocus="True" IsSpellCheckEnabled="False" VerticalContentAlignment="Top" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="已禁用”
【问题讨论】:
-
你到底想让退格做什么?
-
我希望它表现正常,即删除左边的字符(假设从左到右布局)。删除删除右侧的字符。由于我是从头开始制作键盘,因此我需要自己实现。我不想操纵包含的字符串。我正在使用文档方法。这是我尝试过的:
EditBox.Document.Selection.Delete(Windows.UI.Text.TextRangeUnit.Character, 1); -
好的。也想通了。原来你只是删除 -1 个字符!哎呀。
标签: c# xaml winrt-xaml