Граница текстового поля WPF меняет цвет при вводе мыши

#c# #wpf #visual-studio #textbox #border

#c# #wpf #visual-studio #текстовое поле #граница

Вопрос:

По какой-то причине моя граница текстового поля меняет цвет на синий при наведении курсора мыши на текстовое поле. вот мой xaml:

  <TextBox 
   BorderThickness="1" 
   BorderBrush="Black" 
   x:Name="textBox" 
   custom:ScrollToEndBehavior.OnTextChanged="True" 
   VerticalScrollBarVisibility="Auto" 
   HorizontalAlignment="Center" 
   Height="154" 
   Margin="32,220,36,5" 
   TextWrapping="Wrap" 
   Text="{Binding LogText, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"  
   Width="449" 
   Background="WhiteSmoke" 
   Visibility="{Binding Path=IsLogVisible, Converter={StaticResource BoolToVis}}" 
   IsReadOnly="True"/>
  

Ответ №1:

Измените стиль по умолчанию на черный с помощью триггера IsMouseOver:

 <Style TargetType="TextBox">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="TextBox">
                    <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.IsMouseOver" Value="True">
                            <Setter Property="Border.BorderBrush" TargetName="border" 
                    Value="Black"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
  

Комментарии:

1. спасибо, не могли бы вы объяснить мне, что означает «Шаблон» в свойстве Setter. У меня нет этой опции в раскрывающемся списке intellisense. Я создал Стиль> тег внутри моего <текстового поля>, а затем вставил код, который вы так любезно предоставили. И единственная ошибка, которую я получаю, относится к «Шаблону»

2. Свойство «Template» позволяет переопределять поведение и внешний вид вашего элемента управления.