#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» позволяет переопределять поведение и внешний вид вашего элемента управления.