Wpf 按钮的VSM CommonState对于触摸和鼠标的工作方式不同

Wpf 按钮的VSM CommonState对于触摸和鼠标的工作方式不同,wpf,xaml,touch,visualstatemanager,Wpf,Xaml,Touch,Visualstatemanager,我有一个非常简单的按钮视觉状态管理器,它可以设置边框颜色的动画,并将按钮的图像内容缩放到按下的状态。当用鼠标按下时,此功能有效,但当使用触摸屏时,只有在手指被涂抹在按钮上(按钮表面出现一些拖动)后,才达到按下状态 我查看了按钮的所有公共状态,但没有触摸状态。有什么我忽略的吗 <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <Visu

我有一个非常简单的按钮视觉状态管理器,它可以设置边框颜色的动画,并将按钮的图像内容缩放到按下的状态。当用鼠标按下时,此功能有效,但当使用触摸屏时,只有在手指被涂抹在按钮上(按钮表面出现一些拖动)后,才达到按下状态

我查看了按钮的所有公共状态,但没有触摸状态。有什么我忽略的吗

<VisualStateManager.VisualStateGroups>
    <VisualStateGroup x:Name="CommonStates">
        <VisualStateGroup.Transitions>
            <VisualTransition GeneratedDuration="0:0:0.05" />
            <VisualTransition GeneratedDuration="0:0:0.1" To="Pressed" />
        </VisualStateGroup.Transitions>
        <VisualState x:Name="Normal" />
        <VisualState x:Name="Pressed">
            <Storyboard>
                <ColorAnimation Storyboard.TargetName="ButtonBorder" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" To="#A9CC3D"/>
                <DoubleAnimation Storyboard.TargetName="GrayBorder" Storyboard.TargetProperty="(Border.Background).(ImageBrush.RelativeTransform).(ScaleTransform.ScaleX)" To="1.1"/>
                <DoubleAnimation Storyboard.TargetName="GrayBorder" Storyboard.TargetProperty="(Border.Background).(ImageBrush.RelativeTransform).(ScaleTransform.ScaleY)" To="1.1"/>
            </Storyboard>
        </VisualState>
    </VisualStateGroup>
</VisualStateManager.VisualStateGroups>


奇怪的是,在我们使用ControlTemplate.Triggers之前,问题是默认情况下Windows会将按住按钮映射为右键单击。查看下面关于如何在控件/窗口级别禁用此行为的Stackoverflow讨论