2016-11-18 12 views
-1

パスワードボックスのホバーオーバーとマウスオーバーを無効にしようとしています。私はpasswordbox Styleプロパティを自分のカスタムプロパティに設定しているので、それらは重複しています。パスワードボックスのデフォルトのエフェクトを無効にするにはどうしたらいいですか?PasswordBoxのホバー、フォーカス、マウスのエフェクトを無効にする方法

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

:ここ

はここpasswordBoxとそのスタイル

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

のXAMLは、あなたが設定してみてください可能性があり、あなたのスタイルで

<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> 

答えて

0

passwordboxのスタイルでありますまたは、セッターのプロパティを明示的に指定して、不要なエフェクトを無効にします(ただし、実際にこれらが何であるかを知っている)。

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> 
関連する問題