Как я могу изменить выделенный цвет текста для TextBox? - PullRequest
2 голосов
/ 14 сентября 2011

WPF использует цвет подсветки системы для рисования фона выделенного текста.Я также хочу переопределить его.

У меня есть шаблон элемента управления для 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>

Как я могу изменить этот шаблон для переопределения выделенного текста и цвета фона?

Ответы [ 2 ]

6 голосов
/ 14 сентября 2011

В .NET 4 вы можете использовать свойство SelectionBrush текстового поля.

Более ранние версии требуют переопределения системных цветов в коде, поскольку для этого не было легко раскрываемого свойства - текстовое поле будет просто использовать системные значения.

0 голосов
/ 14 сентября 2011

Я сделал это со стилями, например ::10000

  <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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...