9
votes

I am trying to develop a touchscreen keyboard control in a C# WPF project that will be visible when a TextBox gets focus and is hidden when the TextBox loses focus. The projects I have seen for touchscreen keyboards have accomplished this by defining the keyboard as a new window rather than a control.

For my application, I would really like to have the keyboard as a control within the main application window. Is there a way to allow a button to be clicked (on the keyboard control) without causing the TextBox to lose focus? Ideally, I would like to just place a character at the current position of the carat.

2

2 Answers

30
votes

Set Focusable="False" on the Button. You will still be able to click it with the mouse, and it will still call your click event handler, but it won't acquire focus or cause the TextBox to lose focus.

1
votes

An alternative is to use a PictureBox instead o a Button, then you would customize it. PictureBoxes don't lose focus when clicked.