【问题标题】:How to Disable PasswordBox Hover,Focused,Mouse effects如何禁用 PasswordBox 悬停、聚焦、鼠标效果
【发布时间】:2016-11-18 11:11:26
【问题描述】:

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

这里是密码框的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>

【问题讨论】:

    标签: c# wpf xaml styles passwordbox


    【解决方案1】:

    按照你的风格,你可以尝试设置:

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

    或者显式指定setter属性来禁用你不想要的效果(虽然我实际上并不知道这些是什么)。

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-26
        • 1970-01-01
        • 2013-03-23
        • 2017-12-26
        • 1970-01-01
        • 1970-01-01
        • 2013-11-23
        相关资源
        最近更新 更多