2016-04-03 5 views
0

タイトルが示唆しているように、ボタンの上でマウスの左ボタンをクリックするとトリガするトリガプロパティを探しています。問題は私のボタンは、それがコントロールのテンプレートとして矩形を持っていると私はボタン/矩形がクリックされたときに塗りつぶし/ストロークを変更したいと思います。私は働くこと見つけることができますボタンコントロールテンプレートとして機能する四角形のMouseDownセッタープロパティはありますか?

のみトリガプロパティは、「IsMouseOver」動作しないMouseDownイベントやIsPressedなどの

何でもあります。今

私のXAML:トリガーのプロパティ「IsMouseOverは」私はプロパティが異なる色の四角形の塗りと線を設定するために進め、その後のMouseDownこと、としたいです

<Button x:Name="my_Button" Click="my_Button_Click" Margin="268,91,-266,-94"> 
     <Button.Template> 
      <ControlTemplate> 
       <Rectangle HorizontalAlignment="Left" Height="20" Stroke="Black" VerticalAlignment="Top" Width="141" Margin="105,10,0,0" StrokeThickness="2"> 
        <Rectangle.Style> 
         <Style TargetType="{x:Type Rectangle}"> 
          <Setter Property="Fill" Value="Blue" /> 
          <Style.Triggers> 
           <Trigger Property="IsMouseOver" Value="True"> 
            <Setter Property="Fill" Value="Red"/> 
            <Setter Property="Stroke" Value="Black"/> 
           </Trigger> 
          </Style.Triggers> 
         </Style> 
        </Rectangle.Style> 
       </Rectangle> 
      </ControlTemplate> 
     </Button.Template> 
    </Button> 

。働いていない私が試した

XAML:

       <Trigger Property="MouseDown" Value="True"> 
            <Setter Property="Fill" Value="Red"/> 
            <Setter Property="Stroke" Value="Black"/> 
           </Trigger> 

編集:私は、IsMouseOverトリガプロパティで完璧に動作することを明らかにしたいと思いますが、私は、マウスがクリックされたとき、それはする必要がありますボタンの上を乗り越えるのではなく。

答えて

0

以下DataTriggerを参照してください:

<Button x:Name="my_Button" Click="my_Button_Click" Margin="268,91,-266,-94"> 
     <Button.Template> 
      <ControlTemplate> 
       <Rectangle HorizontalAlignment="Left" Height="20" Stroke="Black" VerticalAlignment="Top" Width="141" Margin="105,10,0,0" StrokeThickness="2"> 
        <Rectangle.Style> 
         <Style TargetType="{x:Type Rectangle}"> 
          <Setter Property="Fill" Value="Blue" /> 
          <Style.Triggers> 
           <DataTrigger Binding="{Binding IsPressed, RelativeSource={RelativeSource Mode=TemplatedParent}}" Value="True"> 
            <Setter Property="Fill" Value="Red"/> 
            <Setter Property="Stroke" Value="Black"/> 
           </DataTrigger> 
          </Style.Triggers> 
         </Style> 
        </Rectangle.Style> 
       </Rectangle> 
      </ControlTemplate> 
     </Button.Template> 
    </Button> 
+0

このような簡単な解決策は、完璧に動作します! – Mercender

関連する問題