2017-08-10 379 views
1

我有一個WPF應用程序,它在某一點出現另一個窗口,用戶可以在打開時選擇的字段中輸入文本,然後單擊確定以保存文本。這可以在我的桌面上使用鼠標正常工作,但是當我在平板電腦(Surface Pro)上運行應用程序時,需要點擊確定按鈕兩次以保存文本。第一個水龍頭突出顯示該按鈕,然後第二個水龍頭點擊它。有什麼方法可以讓用戶點擊屏幕上的一個按鈕嗎?需要在觸摸屏上點擊兩次以點擊WPF中的按鈕

這隻發生在應用程序切換到新窗口時。主窗口只需要點擊一下按鈕(雖然我注意到當切換回主窗口時需要兩個按鈕)。看起來這個問題與焦點或某事有關,因爲如果我在點擊確定之前點擊新窗口的某個地方,我可以點擊確定一次,它將觸發點擊事件。

回答

0

你可能需要在你的代碼是這樣的:

textBox1.Focus(); 

其他地方要考慮的是表單中項目的Tab順序。一旦焦點離開文本框,它將移動到下一個最高的製表順序對象。它應該是OK按鈕。

您可以通過查看錶單上對象的屬性來調整Tab順序。

+0

我已經擁有了textBox.Focus(),並且在彈出窗口時選中了文本框,並且可以在不點擊任何內容的情況下爲其添加文本,但仍然需要兩次敲擊才能點擊「確定」。我會看看標籤順序,看看是否有幫助 –

0

這是一個WPF與觸摸顯示器結合的錯誤。

由於文本框是專注的,並且您按下按鈕,文本框會變得不專心,並且按鈕會變得焦點。當按鈕具有焦點時,您只需按下它即可保存文字。

事實上你沒有辦法做到這一點,因爲在觸發事件之前觸摸屏首先關注按鈕(我認爲它很可能是一種安全功能)。

+0

這是我擔心的。這非常令人失望,它讓我的應用程序用戶更加不友好,如果他們總是需要點擊OK兩次才能點擊它。哦,還有 –

+0

@JacobCM嗯,有一種解決方法,但我不知道它是否適合您的應用程序。觸摸屏有一種方法可以調整驅動程序,讓一個水龍頭變成雙擊(我一邊爲你尋找答案一邊閱讀)。我不知道如何做到這一點,或者它甚至可以實現它 – Giellez

+0

我從來沒有想到這一點,這是一個有趣的解決方案。我不確定這是否會與我的應用程序一起工作,但我會考慮這一點,謝謝 –