Как «расширить» цвет фона абзаца RichTextBox? - PullRequest
0 голосов
/ 18 ноября 2018

Как вы можете видеть ниже, есть белые поля с обеих сторон, как расширить серый фон по горизонтали, чтобы он охватывал TextBox от края до края?

<RichTextBox x:Name="logTextBox" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Auto" IsReadOnly="True" FontSize="12"  Margin="10,165,10,10" >
            <RichTextBox.Resources>
                <Style TargetType="{x:Type Paragraph}">
                    <Setter Property="Margin" Value="0"/>
                </Style>
                <Style TargetType="ScrollViewer">
                    <Setter Property="MaxWidth" Value="480" />
                </Style>
            </RichTextBox.Resources>
        </RichTextBox>

Использование:

    public void AddLog(string log)
    {
        Run run = new Run(log);
        Paragraph paragraph = new Paragraph(run);
        paragraph.Background = new SolidColorBrush(Colors.Gray);
        var numberOfBlocks = logTextBox.Document.Blocks.Count;
        const int MaxNumberOfBlocks = 100;
        if (numberOfBlocks > MaxNumberOfBlocks)
        {
            logTextBox.Document.Blocks.Remove(logTextBox.Document.Blocks.FirstBlock);
        }
        logTextBox.Document.Blocks.Add(paragraph);
        logTextBox.ScrollToEnd();
    }

enter image description here

1 Ответ

0 голосов
/ 19 ноября 2018

Установите для свойства PagePadding FlowDocument значение 0 после загрузки RichTextBox:

public void AddLog(string log)
{
    Run run = new Run(log);
    Paragraph paragraph = new Paragraph(run);
    paragraph.Background = new SolidColorBrush(Colors.Gray);
    var numberOfBlocks = logTextBox.Document.Blocks.Count;
    const int MaxNumberOfBlocks = 100;
    if (numberOfBlocks > MaxNumberOfBlocks)
    {
        logTextBox.Document.Blocks.Remove(logTextBox.Document.Blocks.FirstBlock);
    }
    logTextBox.Document.Blocks.Add(paragraph);
    logTextBox.Document.PagePadding = new Thickness(0); //<--
    logTextBox.ScrollToEnd();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...