2014-10-19 4 views
2

포커스가없는 동안 WPF 4.0 RichTextEdit을 선택으로 표시 할 수 있습니까? RichTextEdit에서 포커스를 잃을 때 기본적으로 선택 강조 표시 사각형이 사라집니다.WPF RichTextBox : 포커스가없는 동안 SelectionOpacity

다음은 자연적으로 작동하지 않습니다.

<RichTextBox> 

    <RichTextBox.Style> 
     <Style TargetType="{x:Type RichTextBox}"> 
      <Style.Triggers> 
       <Trigger Property="IsFocused" Value="false"> 
        <Setter Property="SelectionOpacity" Value="1"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </RichTextBox.Style> 

    <FlowDocument> 
     <Paragraph> 
      <Run>Example Text</Run> 
     </Paragraph> 
    </FlowDocument> 

</RichTextBox> 

답변

0

선택을 제거하지 않으려면 LostFocus 이벤트를 처리해야합니다.

XAML :

<RichTextBox LostFocus="RichTextBox_OnLostFocus" /> 

뒤에 코드 :

void RichTextBox_OnLostFocus(object sender, RoutedEventArgs e) 
{ 
    var rtb = e.Source as RichTextBox; 
    if (rtb == null) 
     return; 

    if (!rtb.Selection.Start.Equals(rtb.Selection.End)) 
    { 
     e.Handled = true; 
    } 
} 
0

오래된 질문하지만, 미래에 대한 해답을 찾는 사람을위한 - TextBoxBase에서 상속하는 모든 컨트롤은 속성을 IsInactiveSelectionHighlightEnabled 있습니다.

이 속성을 true로 설정하면 포함 된 컨트롤에 포커스가 없어지면 선택된 텍스트가 강조 표시 된 채로 유지됩니다 (사용 된 컬러 브러시는 다름).

WPF RichTextBox 또는 FlowDocumentReader를 포함해야합니다.

관련 문제