2014-04-14 3 views
0

나는 RichTextBox을 Rtf 형식으로 가지고 있습니다. 사용자는 현재 테이블에 붙여 넣을 수 있습니다. 이 기능을 으로 가져 가야합니다. 예 : 붙여 넣기에서 Rtf의 표를 제거하고 싶습니다.테이블 변환 텍스트 방법 C# WPF?

글 머리 기호, 번호 매기기 목록 등을 유지해야하므로 RichTextBox을 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);      
    } 

순회은 태그를 제거하는 것은 매우 보인다 복잡한 각 붙여 넣기가 다를 수 있습니다. 나는 Word에서 테이블 ConvertToText이 정확히 무엇을 필요로하는지 알아 차렸다.

.NET에서이 방법을 사용할 수 있는지 알고있는 사람이 있습니까? 감사합니다.

+0

나는이 문제에 대한 해결책이 없다고 생각하기 시작했습니다. – Hardgraf

답변

0

좋아, 누군가가 이것을 시도하고 있다면 가능하다고 생각하지 않습니다. 어쩌면 Rtf 문자열의 간단한 테이블을 반복하고 태그를 제거 할 수 있지만 사용자 입력을 확인할 수없는 경우 Rtf는 너무 복잡합니다. 따라서 내 솔루션 (일종의 ...)

 private void _btnFormat_Click(object sender, RoutedEventArgs e) 
     {    
      TextRange rangeOfText = new TextRange(richTextBoxArticleBody.Document.ContentStart, richTextBoxArticleBody.Document.ContentEnd); 

      rangeOfText.ApplyPropertyValue(Table.BorderThicknessProperty, "3"); 
      rangeOfText.ApplyPropertyValue(Table.BorderBrushProperty, Brushes.Red); 
     } 

'포맷'버튼 클릭 이벤트에서 나는 테이블 테두리를 빨간색으로 설정했습니다. 내에 나는이 간단한 if 문을 사용했습니다 데이터베이스 방법으로 다시 저장합니다 테이블에서 사용자 페이스트들이 빨간색 셀 테두리를 통해 경고 메시지가 표시됩니다 따라서

private void SaveToDbCommandAction() 
    { 
     if(PastedText.Contains("trowd")) 
     { 
      Xceed.Wpf.Toolkit.MessageBox.Show("Cannot save Article. Please remove pasted tables");   
     } 
     else 
     { 
      SaveToDb(RTBText); 
     }    
    } 

. 이는 보이지 않는 테두리가있는 표를 붙여넣고 실제로 표를 볼 수없는 경우 특히 유용합니다. 그런 다음 If 문은 Rtf 문자열에 'trowd'태그가 포함되어 있는지 확인하여 저장하지 못하게합니다.