2011-12-27 2 views
0

인터넷을 높게 낮게 검색 했으므로 커뮤니티에서 제공 할 수있는 도움이 주어졌습니다.기존 FlowDocument/Paragraph 객체 대신 서식 재설정

코드 뒤에서 RichTextBox 내의 Paragraph 개체의 모든 서식 (굵게, 색상 등)을 변경하고 재설정하는 방법이 있습니까? RichTextBox 구문과 오류 강조 표시 (각 줄은 Paragraph으로 나타남)를 적용하고 있으며 원하는 위치로 되돌리려면 서식을 바꿀 수 있기를 원하므로 TextPointers을 선택한 텍스트로 완벽하게 다시 선택할 수 있습니다. 예를 들어, 사용자가 줄을 처음이나 마지막에 표시하지 않고도 Visual Studio 에서처럼 대괄호 일치를 수행 할 수 있기를 원합니다.

내가 잘못 생각하고 있습니까? 사전에

This answer almost gets me there.

감사합니다!

답변

0

가장 중요한 것은 TextRange 생성자가 두 개의 TextPointer 개체를 시작 및 끝으로 사용한다는 것입니다. 이러한 객체는 어떤 식 으로든 선택 영역에 묶일 필요가 없으며 내용을 이동하려면 GetPositionAtOffset과 같은 메서드가 있습니다. 여기

은 모든 선택을 변경하지 않고, 사용자의 캐럿은 단락의 일부 샘플 글꼴 가족, 굵은 재설정 코드 및 기울임 꼴이다 :

var para = richTextBox.CaretPosition.Paragraph; 
var range = new TextRange(para.ContentStart, para.ContentEnd); 
range.ApplyPropertyValue(TextElement.FontFamilyProperty, "Calibri"); 
range.ApplyPropertyValue(TextElement.FontWeightProperty, FontWeights.Normal); 
range.ApplyPropertyValue(TextElement.FontStyleProperty, FontStyles.Normal);