2011-09-14 15 views
2

WPFは、選択したテキストの背景を塗りつぶすために、システムハイライトカラーを使用します。私もそれを無効にしたいと思います。TextBoxのハイライトされたテキストの色を変更するにはどうすればよいですか?

私は、テキストボックス(TextBox)コントロールのコントロールのテンプレートを持っている:

<ControlTemplate TargetType="TextBox"> 
    <Border Name="Border" 
      CornerRadius="2" 
      Padding="2" 
      Background="Transparent" 
      BorderThickness="0" > 
     <ScrollViewer Margin="0" x:Name="PART_ContentHost"/> 
    </Border> 
    <ControlTemplate.Triggers> 
     <Trigger Property="IsEnabled" Value="False"> 
      <Setter TargetName="Border" Property="Background" Value="{StaticResource TextBoxDisabledBackgroundColor}"/> 
      <Setter Property="Foreground" Value="{StaticResource TextBoxDisabledForegroundColor}"/> 
     </Trigger> 
     <Trigger Property="IsReadOnly" Value="false"> 
      <Setter TargetName="Border" Property="Background" Value="{StaticResource TextBoxBackgroundColor}"/> 
      <Setter Property="Foreground" Value="Black"/> 
     </Trigger> 
    </ControlTemplate.Triggers> 
</ControlTemplate> 

どのように強調表示されたテキストと背景色を上書きするには、このテンプレートを変更できますか?

答えて

5

.NET 4では、テキストボックスのSelectionBrushプロパティを使用できます。

以前のバージョンでは、システムの色をオーバーライドする必要がありました。これは、簡単に公開されるプロパティがないためです。テキストボックスはシステム定義の値を使用します。

+0

ありがとう例えば:、スタイルでそれをやりました! SelectionBrushを使って、選択したテキストの背景色を変更します。しかし、私はまた、選択されたテキストの色を変更する必要があります。これを行う可能性はありますか? – Diana

+0

できません:http://stackoverflow.com/a/10850718/37168 – stone

-1

私は

<Style x:Key="BoundedTextBox" TargetType="{x:Type TextBox}"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding IsAutoCalculated}" Value="True"> 
      <Setter Property="Background" Value="{StaticResource MyBlue}" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
関連する問題