[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在一定条件下失效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值