WPF 文本框在焦点上更改颜色

本文关键字:颜色 焦点 文本 WPF | 更新日期: 2023-09-27 18:35:33

我尝试在聚焦时更改输入框的颜色。

首先我声明输入按钮:

<TextBox x:Name="usernameTextBox"
         HorizontalAlignment="Left"
         Height="23" 
         Margin="115,31,0,0"
         TextWrapping="Wrap"
         VerticalAlignment="Top"
         Width="277"
         GotFocus="usernameTextBox_GotFocus"/>

下面我尝试为该文本框添加样式

<Style x:Key="usernameTextBox"
       TargetType="{x:Type TextBox}">
      <Style.Triggers>
          <Trigger Property="IsFocused"
                   Value="true">
               <Setter Property="Background"
                       Value="{StaticResource OnMouseOverColor}" />
         </Trigger>
    </Style.Triggers>
</Style>

错误:

错误 1 无法将"Style"类型的值添加到集合或 类型词典 "UIElementCollection"。 D:''VS''VIM''VIM_WPF''login.XAML 15 9 VIM_Wpf

任何其他解决方案如何解决此问题?

WPF 文本框在焦点上更改颜色

要么将样式定义为资源(例如,在usercontrol/窗口的资源中),然后执行类似操作

<TextBox Style="{StaticResource theKeyOfYourStyle}" ..../>

或者您在文本框中显式设置它:

<TextBox x:Name="usernameTextBox" HorizontalAlignment="Left" Height="23" Margin="115,31,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="277" GotFocus="usernameTextBox_GotFocus">
  <TextBox.Style>
    <Style TargetType="{x:Type TextBox}">
       <Style.Triggers>
         <Trigger Property="IsFocused" Value="true">
           <Setter Property="Background" Value="{StaticResource OnMouseOverColor}" />
         </Trigger>
       </Style.Triggers>
     </Style>
   </TextBox.Style>
</TextBox>