2017-05-03 12 views
0

マウスが移動するときにボタンの背景、余白、前景を変更したいが、フォアグラウンドのみを変更する。あなたはスタイルがする何よりも優先されますこと、MarginBackgroundでやったようプロパティは、属性に設定されている場合..WPFトリガーが機能しない

<Window x:Class="MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:coupleofbuttons" 
     mc:Ignorable="d" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Button x:Name="ButtonX" Margin="10,10,0,0" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="100" Height="46" Background="Green" BorderThickness="0,0,0,7"> 
      <Button.Style> 
       <Style TargetType="{x:Type Button}"> 
        <Style.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Background" Value="DarkGoldenrod"/> 
          <Setter Property="Foreground" Value="Green"/> 
          <Setter Property="Margin" Value="10,20,0,0"/> 
         </Trigger> 
        </Style.Triggers> 
       </Style> 
      </Button.Style> 
     </Button> 
    </Grid> 
</Window> 

答えて

1

を助けてください、そのスタイルのトリガーは、それを変更することはできません。

これらのプロパティのデフォルト値は、[スタイル]の[設定]で設定しますが、[スタイル。トリガー]セクションでは設定しません。そして今あなたが持っているマージンとバックグラウンドのプロパティを離してください。

Clemensがコメントで指摘したように、この動作はDependency Property Value Precedenceの規則で説明されています。これはもっと良い方法です:通常、スタイルを上書きする属性が必要です。このトリガーケースでのみ、スタイルが他のものより優先されるようにしたいと思うでしょう。

<Button 
    x:Name="ButtonX" 
    Content="Button" 
    HorizontalAlignment="Left" 
    VerticalAlignment="Top" 
    Width="100" 
    Height="46" 
    BorderThickness="0,0,0,7" 
    > 
    <Button.Style> 
     <Style TargetType="{x:Type Button}"> 
      <Setter Property="Margin" Value="10,10,0,0" /> 
      <Setter Property="Background" Value="Green" /> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background" Value="DarkGoldenrod"/> 
        <Setter Property="Foreground" Value="Green"/> 
        <Setter Property="Margin" Value="10,20,0,0"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Button.Style> 
</Button> 

漠然とオフトピックわめき散らすは

個人的には、ソフトウェアのユーザーとして、私はそれが非常にイライラ私はあなたのトリガがあります効果がある、それらをクリックすると、コントロールが移動持つように見つけたとき、それをマージンを変更します。ちょうど昨日、私はその問題についてウェブサイトにフィードバックを送りました。私は彼らのページを使って怒っているアライグマをスティックで殴るように感じたと彼らに言った。

しかし、開発者として、あなたの呼び出しです。彼らのインターフェースは、正直言ってあなたよりもはるかに厳しいものでした。それは、かすかな紫色のものでいっぱいだった。 Googleアナリティクスが自殺した視聴者の数を追跡したかどうか尋ねなければなりませんでした。私は彼らが返信することを疑う。顧客サービスは失われた技術です。

+0

ありがとう、それは働いて、今私は "依存関係"を理解しています..ありがとう... –

+0

@ YassirRabiea素晴らしい。問題が解決した場合は、正解としてください。 –

関連する問題