2014-04-07 3 views
1

내보기 모델에서 '붙여 넣기'버튼 명령을 사용하여 클립 보드에서 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 패턴을 아프게하지 않습니다 결국 감사

+0

'GetText()'는 텍스트 만 반환하며 서식은 포함하지 않습니다. 당신이 보는 것은'PastedText'의 내용에 적용된 여러분의 코드 (또는 XAML)를 포맷하는 것입니다. –

+0

예하지만 GetText (TextDataFormat.RTF)는 붙여 넣은 텍스트의 서식과 함께 RTF를 반환합니다. 나는 GetText()가 형식화되지 않은 텍스트를 반환 할 것이라는 것을 알지만 RTF 형식으로 필요합니다 ... – Hardgraf

+0

GetText()를 사용하면 RTF 끝에 일반 텍스트를 입력 한 텍스트의 RTF 형식을 가져옵니다. 그 결과 붙여 넣은 텍스트가 RichTextBox에 새 줄을 만들고 붙여 넣은 텍스트의 FontSize가 16로 기본값이됩니다. – Hardgraf

답변

0

은 내가 '형식'버튼을 사용하여 RichTextBox 자체에서 서식을 제거하기 위해 뷰에서 뒤에 코드를 사용 코드는 UI 로직 일뿐입니다.

관련 문제