鼠标按下扳机进行控制

本文关键字:控制 扳机 鼠标 | 更新日期: 2023-09-27 18:37:14

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

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

鼠标按下扳机进行控制

如果要"捕获"鼠标单击触发器以更改控件的某些其他属性,则可以使用 EventTrigger。

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

如果您的控件需要响应鼠标单击,则最好将 Button 用于此目的。IsPressed 属性在 ButtonBase 中定义,这将满足您的需求。

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