程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> WPF Bug清單之(9)——消失的光標

WPF Bug清單之(9)——消失的光標

編輯:關於.NET

首先聲明一下:有人早就發現了這個問題,發過了帖子,也已經有微軟的人說這是“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。

不知道微軟為什麼會這麼做?但是相信用戶在文本框輸入著東西,突然發現光標看不到了,絕對不會覺得很自然。而且WinForm的TextBox是沒有這個問題。

不知道微軟的這個by design是作何考慮的?大家覺得呢?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved