Как сделать RichTextBox
без полей, границ, отступов и т. Д.? Другими словами, чтобы отображать контент так же, как TextBlock
? Я пробовал следующее:
LLL
LLL
Но результат все еще не тот, который мне нужен:
Есть еще некоторое пространство перед содержимым документа (а также, возможно, после, вверху или внизу документа ...). Как его удалить?
Если интересно, зачем мне это: пытаюсь сделать HB ' s ответ на мой вопрос Создайте редактор гитарных аккордов в WPF для работы с кернингом , и я не хочу, чтобы между символами было неестественное пространство.
Так что это не ControlTemplate
, по крайней мере не только потому, что следующий код даст точно такой же результат (как на картинке выше):
LLL
И я подумал, что на этот вопрос будет легко ответить .. . Интересное наблюдение: когда у меня есть набор шаблонов и я установил PagePadding = "0"
в FlowDocument
, он отображает нужный мне макет в дизайнере VisualStudio. - , пока я не запустил демо . В демке опять не так ... А когда закрываю демку, в дизайнере опять не так. Это небольшая ошибка VS, или она на какое-то время действительно настроена на правильный макет, но затем что-то меняет значение PagePadding
обратно на неправильное значение?
Отредактировано Дэниелом Роузом ответ тоже не работает у меня. Это XAML:
hello
И это в коде:
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); }
}
Никаких изменений результата . Осталось место.
После добавления двусторонней привязки, как предложил Дэниел Роуз в своей последней редакции, она работает. Тем не менее, я не думаю, что это очень ясно (иметь свойство зависимости, потому что мне нужно сохранить значение 0 для PagePadding
). Я думаю, что это обходной путь - ошибка взлома. Если у кого-то есть лучшее решение, поделитесь им.
Очевидно, что «изменение PagePadding
» из FlowDocument
на 0,5
является ошибкой. Если у кого-то есть учетная запись MSDN, было бы хорошо, если бы они сообщили об этой ошибке.