我正在構建一個虛擬鍵盤以適應我將要部署的觸摸屏機器的需求。我使用的是彈出窗口鍵盤和已經能夠連接所有數字按鈕如下,這裏是我的虛擬鍵盤類當窗口彈出時如何保持文本框的焦點
public partial class NumKeypad : Window
{
withoutB withoutbvn;
enterBvn ebvnn;
public NumKeypad()
{
InitializeComponent();
}
public NumKeypad(withoutB wobvn)
{
InitializeComponent();
withoutbvn = wobvn;
}
private void one_Click(object sender, RoutedEventArgs e)
{
var focusedElt = FocusManager.GetFocusedElement(withoutbvn);
var tbox = focusedElt as TextBox;
try
{
withoutbvn.ph.Text += (((sender as Button).Content as Border).Child as TextBlock).Text;//this works, but this is assigning directly to only one control. i want to assign to whatever control that has focus
}
catch (Exception ex)
{
}
}
}
在one_click函數的第一行(負責處理所有輸入按鈕點擊)我試圖獲取當前關注於實例爲「withoutbvn」的頁面中的元素的引用。 在第二行,我嘗試將元素轉換爲文本框,以便我可以寫入其文本屬性。但是一直返回null。這意味着當這個彈出窗口出現時(當文本框或任何其他輸入元素獲得焦點時彈出鍵盤彈出窗口),我無法獲得對焦點文本框的引用,所以我不能寫入它。請如何確保集中的文本框保持專注,以便我可以從彈出窗口分配其文本屬性?或者如果有更好的方法來做到這一點,請指出我的方向是正確的。由於
難道你不能自己創建它嗎? –
看到這個:https://www.codeproject.com/Articles/145579/A-Software-Virtual-Keyboard-for-Your-WPF-Apps – tabby
@MarcoSalerno我現在要做的,但我有一個問題。當在鍵盤上點擊一個按鈕(這是一個彈出窗口)時,如何在父窗口中設置文本框的文本以及按鈕傳遞的值 –