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 only 4 or 2?
<TextBox
Width="200"
Height="200"
Margin="0 0 10 0"
AcceptsReturn="True"
AcceptsTab="True"
Text="{Binding OutlineText}"/>
You can create your own TextBox control to give the desired affect:
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
One problem with the solution Jason provided is that modifying the Text will erase the undo stack. An alternative solution is to use the Paste method. In order to do this you first need to copy your tab string to the clipboard.
Yes it is possible....
TextBlock.Text = "ABC" + string.Format("{0}", "\t") + "XYZ";
It will do what we need !!
Try a control that allows you to set the tab size. Maybe http://wpfsyntax.codeplex.com/ will do?
I suggest you take a look at Typography property of the TextBox. Even though I could not immediately find anything about tab size in there, this is the property that affects the way the text is rendered by the TextBox so it might as well be the thing you're looking for.