gpt4 book ai didi

c# - WPF 文本框和空格字符换行

转载 作者:太空狗 更新时间:2023-10-29 17:59:10 24 4
gpt4 key购买 nike

我的观察:

在测试带有启用换行的文本框以允许多行文本的 WPF 应用程序时,如果我刚开始键入单词并到达文本框的最右侧,单词和光标换行到下一行我打字时的最后一个空格/字符分隔符。

如果我在第一行键入一个字符,然后按住空格键,则光标会滚动到 TextBox 中的 View 之外,并且当光标到达第一行的末尾时不会换行到第二行。一旦我输入空格以外的内容,该字符就会换行并从第二行的开头开始。如果我使用左箭头键向后移动,光标将从第二行消失,并且在第一行的某个时间不可见,直到它移动到之前键入的所有空格。如果我将光标放在第一行的末尾并键入另一个非空格字符,该字符通常会换行到第二行,并在第二行的前一个字符前面有几个空格。相对于 TextBox 中的文本,内容将包括所有可见字符以及包含在 TextBox View 区域之外的所有空格字符。

我的问题:

我是否缺少 TextBox 上的属性设置,以强制空格字符在到达第一行末尾时换行第二行,而不是滚出屏幕?

谢谢。

标记

最佳答案

做了一些研究并用不间断空格“/u00a0”替换空格“”更改的文本使光标保持在文本框的边界内。

我只是将其连接起来作为概念证明,这将导致递归调用,因此不要在生产代码中使用它。也许改用转换器,或者在您的数据绑定(bind)属性 setter 中?

    /// <summary>
/// Handle textbox on text changed event
/// </summary>
private void TextBoxBase_OnTextChanged(object sender, TextChangedEventArgs e)
{
// Replace space with non-breaking space
TestTextBox.Text = TestTextBox.Text.Replace(" ", "\u00a0");
// Put the cursor at the end of the textbox (updating text sets the cursor at the start)
TestTextBox.CaretIndex = TestTextBox.Text.Length;
}

关于c# - WPF 文本框和空格字符换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31299556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com