2013-03-27 81 views
0

我在Windows Phone應用程序中使用只讀TextBox來顯示可複製文本。現在我想點擊TextBox單個字符,即用戶點擊的字符。防止Windows Phone 8文本框中的自動選擇

下面的代碼正確選擇的第一個字符,但一秒鐘後,選擇復位(即Windows手機會自動選擇在抽頭位置後,整個字):

private void TextBox_Tap(object sender, System.Windows.Input.GestureEventArgs e) { 
    TextBox box = sender as TextBox; 
    Dispatcher.BeginInvoke(delegate { box.Select(0, 1); }); 
    //simplified example: select only the first character. 
} 

這工作正常WP7,但是。
關於如何恢復舊行爲的任何想法?

+0

在eventargs上,您是否嘗試過將設置處理爲true? – 2013-03-27 23:24:46

+0

@ofstream:是的,但它沒有改變任何東西。 – 2013-03-28 05:49:21

回答

0

我不知道如何做到這一點跟你有代碼的其餘部分進行交互,但你應該能夠使用的SelectionChangedGotFocus事件的組合在TextBox取代了以往使用Tap處理程序停止選擇由用戶重置。

更新 這不適合這種情況。

從我的設備上快速播放它看起來像MouseLeftButtonUp一些其他事件是造成這一點,而不是點擊。嘗試將代碼移至該事件。

+0

謝謝!問題是,我只想在用戶點擊時重置選區,而不是在她通過拖動選區控制柄來修改選區時進行重置。 – 2013-03-28 23:46:12

+0

但是爲什麼?點擊在手機的其他地方選擇一個字。 – 2013-03-29 06:50:45

+0

因爲它沒有在沒有空格的語言中正確選擇單詞。如果在文本框中輸入「今天天氣怎麼樣?」並嘗試選擇單詞,它會選擇完全隨機的段落。我正在寫中文字典,所以我想通過在用戶點擊字符時明確選擇自己的單詞來解決這個問題。 – 2013-03-29 08:05:00