2011-09-27 11 views
0

WPF 응용 프로그램에 RichTextBox가 있습니다. 각 텍스트 줄에 대체 색상을 적용하고 싶습니다. Background 속성을 원하는 색상으로 설정했지만 텍스트 길이가 다르기 때문에 텍스트가 포함 된 부분 만 배경색을 가져옵니다. 전체 선이 원하는 배경색으로 설정되도록 속성을 설정하는 방법.전체 텍스트 줄에 배경색 적용

하나의 비 우아한 솔루션은 빈 공간을 채우는 것이지만 RichTextBox 레이아웃이 변경되면 시행 착오를 기준으로 코드를 변경해야합니다.

더 좋은 방법이 있습니까? 모든 라인이 같은 높이 인 경우

+0

색상 정의 방법에 대한 코드를 게시 할 수 있습니까? –

+0

사용자 작업을 설명 할 수 있습니까? 당신이하고있는 일이라고 가정해야합니다 .... 1. 아래에 3 줄을 입력하십시오. 2. 선 중 하나를 선택하고 배경색을 설정하십시오. 3. 배경이 해당 줄의 서식있는 텍스트 상자/가로 스크롤 막대 너비에 걸쳐있을 것으로 예상합니까? –

+0

@AngelWPF : 가로 스크롤 막대가 없습니다. 폭은 고정되어 있습니다. 그것은 사람들이 덜 고통스럽게 읽을 수 있도록 목록에 표시하는 대체 색칠하는 것과 매우 비슷합니다. –

답변

0

동적으로 생성 된 항목으로이 작업을 수행하는 방법을 알고 싶었습니다. 내 경우에는 여분의 공백을 사용했습니다. 당분간, 이것은 내가가는 길입니다.

0

, 당신은 (적절하게 설정된 크기/색상) 같은 효과를 갖도록는 RichTextBox 자체에 배경 그래픽을 적용 할 수

<RichTexBox> 
    <RichTexBox.Background> 
      <VisualBrush TileMode="Tile" Viewport="0 0 100 100" ViewportUnits="Absolute"> 
       <VisualBrush.Visual> 
        <StackPanel> 
         <Rectangle Width="100" Height="50" Fill="Red" /> 
         <Rectangle Width="100" Height="50" Fill="Blue" /> 
        </StackPanel> 
       </VisualBrush.Visual> 
      </VisualBrush> 
    </RichTexBox.Background> 
</RichTexBox> 
+0

선이 동적으로 생성되므로이 기존 XAML 코드를 적용하여 작업을 수행 할 수는 없습니다. 그러나, 나는 당신이 제안한 접근법을 시도하지 않았지만 그것이 3 행 이상을 위해 작동 할 것인가? –

0

시도를 사용하는 List은 배경색이있는 행을 강조 표시합니다. 누구든지 RichTextBox.TextChanged 이벤트의 텍스트를 변경하면 ListItem 컬렉션을 새로 고칩니다 (텍스트의 줄 수에 따라).

<RichTextBox> 
     <RichTextBox.Document> 
      <FlowDocument> 
       <List> 
        <ListItem Background="Red" /> 
        <ListItem Background="Green"/> 
        <ListItem Background="Yellow"/> 
       </List> 
      </FlowDocument> 
     </RichTextBox.Document> 
    </RichTextBox> 

나는 당신이 를 n의 스타일을 재정 의하여 목록으로 느낄 보일 글 머리 기호 변경할 수 있다고 생각합니다.

관련 문제