鼠标按下触发器进行控制

时间:2015-01-12 08:09:19

标签: c# wpf xaml triggers wpf-controls

我有一个主要有一个图像的控件(我稍后会添加更多)。我已经定义了模板。 我想定义鼠标按下的触发器,但我在控件类文档中找不到任何内容。 我应该检查哪个属性进行鼠标点击。

 <Grid>

    <Control x:key="Mycontrol" Margin="0" HorizontalAlignment="Center" VerticalAlignment="Center">
        <Control.Style>
            <Style TargetType="{x:Type Control}">
                <Setter Property="Width" Value="220"/>
                <Setter Property="Height" Value="540"/>
                <Setter Property="IsHitTestVisible" Value="True"/>

                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate >
                                 <Grid>
                                     <Image Source="Base.png" />                                       
                                 </Grid>
                      <ControlTemplate.Triggers>

                       <Trigger Property="XXXXXXX" Value="True">
                                    <Setter Property="Background" Value="Black"/>
                       </Trigger>
                       </ControlTemplate.Triggers>
                      </ControlTemplate>
                            </Setter.Value>
                        </Setter>                        

            </Style>

        </Control.Style>
    </Control>

</Grid>

2 个答案:

答案 0 :(得分:0)

如果你想&#34;陷阱&#34;鼠标单击触发器以更改控件的某些其他属性,您可以使用EventTrigger

<EventTrigger RoutedEvent="Mouse.MouseDown">
    <BeginStoryboard>
        <Storyboard>
            <ColorAnimation ... />
        </Storyboard>
    </BeginStoryboard>
</EventTrigger>

答案 1 :(得分:-1)

如果您的控件需要响应鼠标单击,那么最好使用Button来实现此目的。 IsPressed属性在ButtonBase中定义,它将满足您的需求。

            <Style TargetType="Button">
                <Style.Triggers>
                    <Trigger Property="IsPressed" Value="True">
                        <Setter Property="Background"
                                Value="Red" />
                    </Trigger>
                </Style.Triggers>
            </Style>