【问题标题】:MS Word style text indentation in WPF (using Richtextbox)WPF 中的 MS Word 样式文本缩进(使用 Richtextbox)
【发布时间】:2013-05-26 17:05:13
【问题描述】:

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

  • 如果所选文本为单个段落(或更少),则缩进整个段落。
  • 如果未选择任何文本,则缩进整个段落,其中存在插入符号。
  • 如果选定的文本超过一个段落,则将所有选定的段落全部缩进。在这种情况下,可以部分或全部选择段落。

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

【问题讨论】:

    标签: wpf wpf-controls richtextbox rtf wpf-4.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

    【讨论】:

    • 我不能使用按钮,因为它是我正在实现的基于手势的应用程序。但是使用您建议的 EditingCommands 得到了我想要的结果。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    相关资源
    最近更新 更多