如何禁用PasswordBox悬停,聚焦,鼠标效果

时间:2016-11-18 11:11:26

标签: c# wpf xaml styles passwordbox

我正在尝试禁用鼠标悬停和鼠标悬停密码框效果。因为我将passwordbox Style属性设置为我的自定义属性,并且它们是重叠的。如何禁用密码框的默认效果?

这是passwordBox的xaml及其样式

<PasswordBox x:Name="PassBox" MaxLength="40" PasswordChar="*" MinWidth="250" Style="{StaticResource PasswordBoxWithValidation}" Margin="10" />

以下是密码箱的样式

<Style x:Key="PasswordBoxWithValidation" TargetType="PasswordBox">
    <Style.Triggers>
        <Trigger Property="Validation.HasError" Value="True">
            <Setter Property="BorderBrush" Value="Red" />
            <Setter Property="ToolTipService.ShowDuration" Value="20000" />
            <Setter Property="ToolTip">
                <Setter.Value>
                    <ToolTip DataContext="{Binding Path=PlacementTarget, RelativeSource={RelativeSource Self}}">
                        <ItemsControl ItemsSource="{Binding Path=(Validation.Errors)}" DisplayMemberPath="ErrorContent" />
                    </ToolTip>
                </Setter.Value>
            </Setter>
        </Trigger>
    </Style.Triggers>
</Style>

2 个答案:

答案 0 :(得分:0)

您可以尝试设置:

<Setter Property="OverridesDefaultStyle" Value="True" />

或明确指定setter属性以禁用您不想要的效果(虽然我实际上并不知道它们是什么)。

答案 1 :(得分:0)

每个控件都有自己的样式和行为,因此您必须使用。

覆盖默认样式
<Setter Property="OverridesDefaultStyle" Value="True" />

当您覆盖默认样式时,您必须实现控件模板(PasswordBox)。

<Setter Property="Template">
      <Setter.Value>
              <ControlTemplate TargetType="{x:Type PasswordBox}">
                     <!--- Implement your logic here -->
              </ControlTemplate>
      </Setter.Value>
</Setter>