내보기 모델에서 '붙여 넣기'버튼 명령을 사용하여 클립 보드에서 RTF를 복사합니다.RTF 문자열 형식을 설정 하시겠습니까?
private void FormatPastedTextCommandAction()
{
PastedText += Clipboard.GetText(TextDataFormat.Rtf);
}
이 작동하고 텍스트를 붙여 넣기 버튼을 누르면에 붙여 : PastedText
이를 RichTextBox가 내보기에 바인딩되어 내 문자열 속성입니다. 그러나 붙여 넣기 기능의 서식을 잠그고 붙여 넣은 RTF 문자열 (색상, 기울임 꼴, 검은 색 Arial 12로 설정)에서 모든 서식을 제거하고 싶습니다.
난 그냥 PastedText += Clipboard.GetText();
는 일반 텍스트를 얻기 위해 사용하는 것이 있지만, 다른 글꼴 크기에 붙여 넣 나는 RTF 형식으로 필요합니다. RTF 문자열을 반복하고 글꼴 크기, 색상 등을 찾기/바꾸기를 수행했지만 RTF는 몇 단어에 대해서도 매우 복잡합니다.
이 문제가 발생합니까?
private void _btnFormat_Click(object sender, RoutedEventArgs e)
{
TextRange rangeOfText = new TextRange(richTextBoxArticleBody.Document.ContentStart, richTextBoxArticleBody.Document.ContentEnd);
rangeOfText.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Black);
rangeOfText.ApplyPropertyValue(TextElement.FontSizeProperty, "12");
rangeOfText.ApplyPropertyValue(TextElement.FontFamilyProperty, "Arial");
rangeOfText.ApplyPropertyValue(TextElement.FontStyleProperty, "Normal");
rangeOfText.ApplyPropertyValue(Inline.TextDecorationsProperty, null);
rangeOfText.ApplyPropertyValue(Paragraph.MarginProperty, new Thickness(0));
}
이 좋은 일을하고 정말 MVVM 패턴을 아프게하지 않습니다 결국 감사
'GetText()'는 텍스트 만 반환하며 서식은 포함하지 않습니다. 당신이 보는 것은'PastedText'의 내용에 적용된 여러분의 코드 (또는 XAML)를 포맷하는 것입니다. –
예하지만 GetText (TextDataFormat.RTF)는 붙여 넣은 텍스트의 서식과 함께 RTF를 반환합니다. 나는 GetText()가 형식화되지 않은 텍스트를 반환 할 것이라는 것을 알지만 RTF 형식으로 필요합니다 ... – Hardgraf
GetText()를 사용하면 RTF 끝에 일반 텍스트를 입력 한 텍스트의 RTF 형식을 가져옵니다. 그 결과 붙여 넣은 텍스트가 RichTextBox에 새 줄을 만들고 붙여 넣은 텍스트의 FontSize가 16로 기본값이됩니다. – Hardgraf