2014-01-19 33 views
0

我有一個RichTextBox有一些內容。我想隱藏滾動條,並在用戶將鼠標移動到其上時刪除邊框。 我已經加入FocusVisualStyle =「{x:空}」這是我在這個鏈接閱讀:Remove focus rectangle on a UserControlRichTextBox FocusVisualStyle不工作

請看下圖:

<RichTextBox HorizontalAlignment="Left" Height="105" Margin="48,42,0,0" VerticalAlignment="Top" Width="614" Background="Transparent" IsReadOnly="True" ScrollViewer.VerticalScrollBarVisibility="Hidden" BorderBrush="Transparent" ScrollViewer.CanContentScroll="False" FocusVisualStyle="{x:Null}"> 
     </FlowDocument> 
     blah blah 
     </FlowDocument> 
</RichTextBox> 

但wheneever用戶在其移動鼠標我仍然看到白色邊框出現,我可以上下滾動。

這是爲什麼?

回答

0

這不是FocusVisual你看到的是其默認應用於RichTextBox的MouseOver effect

你需要重寫默認模板,以去除通過觸發應用了效果(萬一UIElement.IsMouseOver值爲true)。

創建一個樣式並提供您自己的模板(如果您希望將其應用於您的應用中的所有RichTextBoxes,請將其放在應用資源或窗口資​​源中,無論它放在代碼中的哪個位置,否則您都可以聲明它爲內聯您的RichTextbox):

<Style TargetType="RichTextBox"> 
    <Setter Property="Template"> 
     <Setter.Value> 
     <ControlTemplate TargetType="TextBoxBase"> 
      <Border BorderThickness="{TemplateBinding Border.BorderThickness}" 
        BorderBrush="{TemplateBinding Border.BorderBrush}" 
        Background="{TemplateBinding Panel.Background}" 
        Name="border" 
        SnapsToDevicePixels="True"> 
       <ScrollViewer HorizontalScrollBarVisibility="Hidden" 
          VerticalScrollBarVisibility="Hidden" 
          Name="PART_ContentHost" 
          Focusable="False" /> 
      </Border> 
      <ControlTemplate.Triggers> 
       <Trigger Property="UIElement.IsEnabled" Value="False"> 
        <Setter Property="UIElement.Opacity" TargetName="border" 
          Value="0.56"/> 
       </Trigger> 
      <!--<Trigger Property="UIElement.IsMouseOver" Value="True"> 
        <Setter Property="Border.BorderBrush" TargetName="border"> 
         <Setter.Value> 
          <SolidColorBrush>#FF7EB4EA</SolidColorBrush> 
         </Setter.Value> 
        </Setter> 
       </Trigger>--> 
       <Trigger Property="UIElement.IsKeyboardFocused" Value="True"> 
        <Setter Property="Border.BorderBrush" TargetName="border"> 
         <Setter.Value> 
         <SolidColorBrush>#FF569DE5</SolidColorBrush> 
         </Setter.Value> 
        </Setter> 
       </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
    </Style> 

通知觸發我在上面默認模板有評論。

相關問題