[WPF Bug清单]之(9)——消失的光标
首先声明一下:有人早就发现了这个问题,发过了帖子,也已经有微软的人说这是“by design”的行为。但是我依然对这个诡异的行为表示不可理解。所以发上来,看看大家的见解。
示例代码非常之简单。
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
ResizeMode="NoResize" Title="Caret Gone"
Width="150" Height="100">
<TextBox TextWrapping="Wrap"/>
</Window>
TextBox要设置为Wrap使其自动换行。
重现Bug的步骤如下:
图1. 运行程序
图2. 输入很多字母
图3. 将光标放到行首
图4. 输入空格,光标不见了
光标不可见,其实还是存在的,只是跑到了第一行的行尾。这就是微软的人说的“by design”的行为的后果。
如果大家试着改一下窗体的大小,比如改成200,那么最后一步输入一个空格之后,光标的确还是可见的,多输入几个空格就又看不见了。这是字体大小与窗体宽度的比例问题造成的。
而且重现上面的问题,也并不需要这么多步骤,只要在文本框里输入足够多的空格就会有问题——根本原因就在于空格不会被Wrap。
不知道微软为什么会这么做?但是相信用户在文本框输入着东西,突然发现光标看不到了,绝对不会觉得很自然。而且WinForm的TextBox是没有这个问题。
不知道微软的这个by design是作何考虑的?大家觉得呢?
同系列的其它文章:
[WPF Bug清单](序)与之(1)——可以多选的单选ListBox
[WPF Bug清单]之(2)——RadioButton的IsChecked绑定失效
[WPF Bug清单]之(3)——暗中创建文件的打开文件对话框
[WPF Bug清单]之(4)——点击RadioButton的空白没有反应
[WPF Bug清单]之(5)——隐藏模态对话框后变成非模态
[WPF Bug清单]之(6)——Button的IsCancel属性失效
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述