В зависимости от сложности вашего приложения, прямое преобразование из WinForm в WPF может быть затруднено.Чтобы ответить на ваши две конкретные проблемы.
1) Как вы знаете, в RichTextBox в WPF нет свойства MaxLength
.Одним из способов решения этой проблемы является запись количества символов после того, как пользователь ввел символ, и проверка, превышает ли он ваш лимит.Например ( отсюда ):
private void xBox_KeyDown(object sender, KeyEventArgs e)
{
TextRange tr = new TextRange(xBox.Document.ContentStart ,
xBox.Document.ContentEnd);
if (tr.Text.Length >= 4000 || e.Key == Key.Space || e.Key == Key.Enter)
{
e.Handled = true;
return;
}
}
2) Аналогично, вы можете использовать свойство TextRange
для получения текста в RTB:
TextRange xBoxTR = new TextRange(xBox.Document.ContentStart,
xBox.Document.ContentEnd);
string xBoxText = xBoxTR.Text;