Попробуй это. Это работает для меня .... Это гораздо меньше головной боли, чем альтернативы здесь ...

могу сделатьRichTextBox без полей, границ, отступов и т. д.? Другими словами, отображать контент так же, какTextBlock Является ли ? Я попробовал это:

<RichTextBox Margin="0" Padding="0" Grid.Row="0" BorderThickness="0" >
    <FlowDocument >
        <Paragraph>LLL</Paragraph>
    </FlowDocument>
</RichTextBox>
<TextBlock>LLL</TextBlock>

Но результат производит все еще не то, что я хочу:

До содержимого документа еще есть место (а также, возможно, после, вверху или внизу документа ...). Как я могу удалить это?

Если вам интересно, зачем мне это: я пытаюсь сделатьОтвет Б.Б. на мой вопросСоздать редактор гитарных аккордов в WPF работать скернинг и я не хочу иметь неестественное пространство между персонажами.

редактировать

Так что это не такControlTemplate по крайней мере, не только потому, что следующий код даст точно такой же результат (как на рисунке выше):

<RichTextBox Margin="0" Padding="0" Grid.Row="0" BorderThickness="0">
    <RichTextBox.Template>
        <ControlTemplate>
            <ScrollViewer Padding="0" Margin="0" x:Name="PART_ContentHost"/>
        </ControlTemplate>
    </RichTextBox.Template>
    <FlowDocument PagePadding="0">
        <Paragraph Padding="0" Margin="0" >LLL</Paragraph>
    </FlowDocument>
</RichTextBox>

И я подумал, что на этот вопрос будет легко ответить ...Интересное наблюдение: когда у меня есть набор шаблонов, и я установилPagePadding="0" наFlowDocument он отображает макет, который я хочу в конструкторе VisualStudio -пока я не запускаю демо, В демоверсии это снова не так ... А когда я закрываю демо, это снова неправильно в дизайнере. Это небольшая ошибка VS или она на некоторое время настроена на правильную раскладку, но затем что-то меняет значениеPagePadding вернуться к какому-то неправильному значению?

Изменить # 2

Отредактированный ответ Даниэля Роуза также не работает для меня. Это XAML:

<FlowDocument PagePadding="{Binding PagePadding}">
    <Paragraph x:Name="paragraph" Padding="0" 
        TextIndent="0"  Margin="0,0,0,0" >hello</Paragraph>
</FlowDocument>

И это в коде:

public static DependencyProperty PagePaddingProperty =
            DependencyProperty.Register("PagePadding", typeof(Thickness),   typeof(EditableTextBlock),
            new PropertyMetadata(new Thickness(0)));

public Thickness PagePadding {
    get { return (Thickness)GetValue(PagePaddingProperty); }
    set { SetValue(PagePaddingProperty, value); }
}

Без изменений в результате, Пространство остается.

Изменить # 3

После добавления двухстороннего связывания, как предложил Даниэль Роуз в своем редакторе las, это работает. Тем не менее, я не думаю, что это очень ясно (иметь свойство зависимости, потому что мне нужно сохранитьPagePadding при значении 0).Я думаю, что это обходной путь взлома. Если у кого-то есть лучшее решение, поделитесь им.

Очевидно, "меняетсяPagePadding"изFlowDocument в0,5 это ошибка Если у кого-то есть учетная запись MSDN, было бы хорошо, если бы они сообщили об этой ошибке.

Ответы на вопрос(3)

Ваш ответ на вопрос