[WPF Bug清单]之(9)——消失的光标

首先声明一下:有人早就发现了这个问题,发过了帖子,也已经有微软的人说这是“by design”的行为。但是我依然对这个诡异的行为表示不可理解。所以发上来,看看大家的见解。

 

示例代码非常之简单。 

复制代码
<Window x:Class="HiddenCaret.DemoWindow"

    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

 

不知道微软为什么会这么做?但是相信用户在文本框输入着东西,突然发现光标看不到了,绝对不会觉得很自然。而且WinFormTextBox是没有这个问题。

 

不知道微软的这个by design是作何考虑的?大家觉得呢?

 

同系列的其它文章:

[WPF Bug清单]()与之(1)——可以多选的单选ListBox

[WPF Bug清单](2)——RadioButtonIsChecked绑定失效

[WPF Bug清单](3)——暗中创建文件的打开文件对话框

[WPF Bug清单](4)——点击RadioButton的空白没有反应

[WPF Bug清单](5)——隐藏模态对话框后变成非模态

[WPF Bug清单](6)——ButtonIsCancel属性失效

[WPF Bug清单](7)——顽固的Error Template

[WPF Bug清单](8)——RowDefinitionMaxHeight在一定条件下失效

posted on   南柯之石  阅读(3095)  评论(8编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述

导航

< 2009年3月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11

统计

点击右上角即可分享
微信分享提示