WPF中的MS Word样式文本缩进(使用Richtextbox)

时间:2013-05-26 17:05:14

标签: wpf wpf-controls richtextbox rtf wpf-4.0

我正在实现一个WPF 4.0多点触控应用程序,它根据手势执行文本格式化。虽然我已经设法实现了几种文本格式化,但我很难实现文本缩进(MS Word样式)。通过MS字样式,我的意思是当执行左/右缩进时:

  • 如果所选文本相当于一个段落(或更小),则缩进整段。
  • 如果未选择任何文本,请缩进整个插入符号所在的段落。
  • 如果所选文本相当于一个以上的段落,则完全缩进所有选定的段落。在这种情况下,段落可以部分或完全选择。

我找到了一些解决方案,但目前似乎没有一个适合我。我使用RichTextBox控件,我在我的XAML文件中创建。我想在后面的代码中执行文本缩进。有人可以告诉我如何实现这一目标吗?谢谢。

1 个答案:

答案 0 :(得分:1)

你提到你想在后面的代码中执行此操作,但这一切都可以在XAML本身中完成。我想你正在使用C#。

using System.Windows.Documents;

XAML(我将使用按钮示例,命令可以在任何地方使用):

<Button Name="increaseIndentButton" Command="EditingCommands.IncreaseIndentation"/>
<Button Name="decreaseIndentButton" Command="EditingCommands.DecreaseIndentation"/>
<RichTextBox Name="myRichTextBox" AcceptsTab="True"/>

使用EditingCommands将满足您上面列出的所有要求。

  
      
  • 如果所选文本相当于一个段落(或更小),则缩进整段。
  •   
  • 如果未选择任何文本,请缩进整个插入符号所在的段落。
  •   
  • 如果所选文本相当于一个以上的段落,则完全缩进所有选定的段落。在这种情况下,段落可能是   部分或全部选择。
  •   

此外,增加和减少缩进分别有热键,Ctrl + T和Ctrl + Shift + T.

此处提供了更多信息:http://msdn.microsoft.com/en-us/library/system.windows.documents.editingcommands(v=vs.100).aspx