正如 Headers 所暗示的那样,我正在寻找一个触发器属性,当在按钮上单击鼠标左键时触发该属性 . 问题是我的按钮有一个矩形作为它的控制模板,我想在点击按钮/矩形时更改填充/描边 .
我能找到的唯一触发器属性是“IsMouseOver”
MouseDown或IsPressed之类的东西都不起作用 .
我的xaml现在:
<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>
触发属性“IsMouseOver”的位置我希望该属性为MouseDown,然后继续将矩形的填充和描边设置为不同的颜色 .
xaml我试过没用过:
<Trigger Property="MouseDown" Value="True">
<Setter Property="Fill" Value="Red"/>
<Setter Property="Stroke" Value="Black"/>
</Trigger>
编辑:我想澄清IsMouseOver与触发器属性完美配合,但我需要它是当鼠标单击按钮而不是悬停在上面时 .
1 回答
见下面的
DataTrigger
: