When the user presses a tab in this textbox, the cursor jumps an equivalent of 8 spaces.
How can I change it so it jumps on
You can create your own TextBox control to give the desired affect:
public class MyTextBox : TextBox
{
public MyTextBox()
{
//Defaults to 4
TabSize = 4;
}
public int TabSize
{
get;
set;
}
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
if (e.Key == Key.Tab)
{
String tab = new String(' ', TabSize);
int caretPosition = base.CaretIndex;
base.Text = base.Text.Insert(caretPosition, tab);
base.CaretIndex = caretPosition + TabSize + 1;
e.Handled = true;
}
}
}
Then you just use the following in your xaml:
See the following original answer: http://social.msdn.microsoft.com/Forums/en/wpf/thread/0d267009-5480-4314-8929-d4f8d8687cfd