Получить автоматически определенное значение свойства FlowDocument.PageWidth
У меня есть WPF RichTextBox
контроль, и я устанавливаю значение RichTextBox.Document.PageWidth
собственность на double.NaN
для того, чтобы значение было определено автоматически.
Теперь я хотел бы получить автоматически определенное значение, но я не могу сделать это, прочитав значение свойства, так как оно возвращает double.NaN
,
РЕДАКТИРОВАТЬ
Я пытаюсь получить значение RichTextBox.DesiredSize
в OnMyPropertyChanged
метод свойства, который может быть установлен на auto (со значением double.NaN
):
if (!double.IsNaN(MyProperty)) richTextBox.Width = MyProperty;
else richTextBox.Width = richTextBox.DesiredWidth;
Тем не мение, DesiredSize
возвращает 0 на обеих осях.
2 ответа
Создать TextBlock
элемент управления (не обязательно добавляя его к любому родительскому элементу управления), установите текстовое значение, необходимое для получения ширины, а также свойства шрифта (FontFamily
, FontStyle
, FontWeight
, FontStretch
а также FontSize
), затем позвоните Measure
метод контроля, так что он определяет значение его DesiredSize
свойство, которое вы можете прочитать тогда.
Это по замыслу... RichTextBox должен был существовать в виде с фиксированной шириной. Обходной путь, который должен работать - поместите его в рамку и привяжите ширину текстового поля к значению ActualWidth границы.
Приветствия.