Использование стиля PointerOver для Button требует двойного нажатия на сенсорном устройстве (щелчок мышью в порядке)
Я пишу приложение для Магазина Windows, используя C#/VS2013
Когда я изменяю стиль изображения кнопки, чтобы создать эффект, когда указатель мыши находится над кнопкой, я использую следующее:
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Image Source="/button_enabled.png" x:Name="Image" Height="50" >
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<Storyboard Storyboard.TargetName="Image" Storyboard.TargetProperty="Source">
<ObjectAnimationUsingKeyFrames>
<DiscreteObjectKeyFrame KeyTime="0" Value="/button_enabled.png"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="PointerOver">
<Storyboard Storyboard.TargetName="Image" Storyboard.TargetProperty="Source">
<ObjectAnimationUsingKeyFrames>
<DiscreteObjectKeyFrame KeyTime="0" Value="/button_over.png"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard Storyboard.TargetName="Image" Storyboard.TargetProperty="Source">
<ObjectAnimationUsingKeyFrames>
<DiscreteObjectKeyFrame KeyTime="0" Value="/button_click.png"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Image>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Это прекрасно работает, когда я использую мышь для перемещения курсора.
Однако, когда я нажимаю кнопку на сенсорном экране (вместо того, чтобы щелкать мышью по кнопке), ВСЕГДА требуется 2 отдельных щелчка, чтобы зарегистрировать действие.
Если я удаляю раздел PointerOver, то все работает нормально (и щелчок мышью, и касание / нажатие), но при использовании мыши я теряю эффект наведения мыши.
У кого-нибудь есть идеи о том, почему это происходит? Это ошибка в атрибуте PointerOver?
Обновить Вот как создаются экземпляры кнопок:
<Grid Grid.Column="1">
<Button Style="{StaticResource ButtonStyle}" Tag="Style1" HorizontalAlignment="Right" Margin="10,0,10,0" Click="Btn_Click" PointerReleased="Btn_Released" IsEnabled="True"/>
</Grid>