Попробуй это. Это работает для меня .... Это гораздо меньше головной боли, чем альтернативы здесь ...
могу сделать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
вернуться к какому-то неправильному значению?
Отредактированный ответ Даниэля Роуза также не работает для меня. Это 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, было бы хорошо, если бы они сообщили об этой ошибке.