2009-09-02 3 views
18

RichTextBox의 텍스트 줄 바꿈을 어떻게 비활성화 할 수 있는지 아는 사람 있습니까? 예. 창에 맞지 ​​않는 큰 문자열이있는 경우 RichTextBox은 새 줄을 표시 할 수없는 문자열 부분을 배치합니다. 난 그것을 해제하고 (단지 Scrollbar를 사용하여 볼 수 있도록) 싶습니다.C#/WPF : RichTextBox의 텍스트 줄 바꿈 사용 안 함

고마워요.

건배

답변

27

WPF에서의 RichTextBox는 단순히 FlowDocument에 대한 편집기입니다. MSDN에 따르면
:

텍스트는 항상 를 RichTextBox에 랩합니다. 당신은 텍스트가 다음 바꿈 FlowDocument 에이 를 RichTextBox의 폭보다 클 수에 에게 PageWidth를 설정하지 않으 합니다. 그러나 한 번 페이지 너비에 도달하면 텍스트가 계속 줄 바꿈됩니다.

richTextBox1.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible; 
richTextBox1.Document.PageWidth = 1000; 

당신이 때까지 기본적으로 동일한 원하는 효과를 갖게됩니다 명시 적으로 RichTextBox의 줄 바꿈을 비활성화하는 방법은 없지만

그래서, 당신은 이런 식으로 뭔가를 할 수 PageWidth을 초과하는 행

참고 : (2015 년 7 월 기준) : VS2015 RC를 사용하면 OP가 원하는 것처럼 정확히 wordwrap = false이 작동합니다. 이전 버전의 Visual Studio도 그렇게 생각합니다.

+0

감사합니다! 매력처럼 작동 –

+6

나는 그 때 수평 Scroolbar가 항상 보이기 때문에 나는 해결책을 좋아하지 않는다 ... – Elisabeth

+0

당신은 (어쨌든) 감싸는 것이 필요하다면 그것을 설정할 수 있다면 좋을 것이다. [단락] 너비 또는 무언가) 필요하지 않을 때 다시 끄십시오 (느릴지라도 매번 확인하도록 모니터링 텍스트 변경) –

0

또한 큰 문자열을 표시해야하고 RichTextBox를 시도했지만 고정 된 크기로 문서의 PageWidth를 설정하는 것이 좋지 않았습니다. 스크롤바는 항상 표시되며 스크롤 영역은 커야합니다.

TextBlock이 충분하면 대신 TextBlock을 사용하여 ScrollViewer에 배치 할 수 있습니다. RichTextBox의 모든 추가 기능을 필요로하지 않아서 완벽하게 작동했습니다.

<ScrollViewer Width="200" 
       Height="100" 
       HorizontalScrollBarVisibility="Auto" 
       VerticalScrollBarVisibility="Auto"> 
        <TextBlock TextWrapping="NoWrap"> 
         <TextBlock.Text> 
          Very long text Very long text Very long text 
         </TextBlock.Text> 
        </TextBlock> 
</ScrollViewer> 
+0

TextBlock을 편집 할 수 없으며, 게다가 풍부한 서식을 지원하지 않는다고 생각합니다. –

+1

@GeorgeBirbilis TextBlock은 편집 할 수 없지만 중첩 된 서식 태그를 사용하는 서식있는 서식을 지원합니다. 굵게, 하이퍼 링크 등 – SepehrM

1

당신이 가로 스크롤 막대를 표시하지 않으려면에서 ScrollViewer에 minWidth를 시행 :

<RichTextBox ScrollViewer.HorizontalScrollBarVisibility="Hidden"> 

    <RichTextBox.Resources> 
     <Style TargetType="ScrollViewer"> 
      <Setter Property="MinWidth" Value="2000" /> 
     </Style> 
    </RichTextBox.Resources> 

</RichTextBox>