CTRL+A 重置富文本框/流文档中的段落边距

时间:2020-12-22 02:21:19

标签: c# wpf windows xaml

<RichTextBox x:Name="TextEntry">
    <FlowDocument>
        <Paragraph Margin="0,0,0,0"/>
    </FlowDocument>
</RichTextBox>

这是我当前 XAML 的基本布局。当我第一次启动我的应用程序时,它工作正常。但是,按 CTRL+A 后,页边距似乎重置了,按一下 Enter 似乎在段落中添加了两个新行。

有什么办法可以反击这种行为吗?或者我可能会错误地更改边距?

我尝试在 C# 中添加实现来覆盖 CTRL+A 的默认行为,并预先将事件注册为已处理以防止在后台进行任何奇怪的操作,唉,这并没有让我在任何地方。< /p>

1 个答案:

答案 0 :(得分:0)

我发现了问题。

CTRL+A+BACKSPACE 删除了整个 静态样式的 Paragraph 对象。新输入后,原始文本会被扔到一个全新的段落中。这是一个解决方案:

<RichTextBox>
    <RichTextBox.Resources>
        <Style TargetType="{x:Type Paragraph}">
            <Setter Property="Margin" Value="0"/>
        </Style>
    </RichTextBox.Resources>
    <FlowDocument>
        <Paragraph Margin="0,0,0,0"/>
    </FlowDocument>
</RichTextBox>