我有一个非常简单的Button可视状态管理器,可以动画边框的颜色,并将按钮的图像内容缩放到Pressed状态。使用鼠标按下时可以正常工作,但是当使用触摸屏时,只有在手指弄脏按钮后才能达到按下状态(按钮面部会发生一些拖动)。
我查看了Button的所有CommonStates,但没有Touched状态。我忽略了什么?
<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进行工作之前。
答案 0 :(得分:0)
问题是默认情况下Windows地图触摸按住右键单击。检查以下Stackoverflow讨论如何在控件/窗口级别禁用此行为。