Os comportamentos não estão funcionando corretamente no Style Setter
No meu aplicativo Windows-Runtime, tenho um tema com um estilo que possui umBehavior
definido para a ação DoubleTapped:
Estes são os namespaces XML:
xmlns:i="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
E este é o estilo:
<Style x:Name="DisplayImage" TargetType="ScrollViewer">
<Setter Property="VerticalScrollBarVisibility" Value="Hidden" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="ZoomMode" Value="Disabled" />
<Setter Property="i:Interaction.Behaviors">
<Setter.Value>
<i:BehaviorCollection>
<core:EventTriggerBehavior EventName="DoubleTapped">
<local:ScrollViewerDoubleTap />
</core:EventTriggerBehavior>
</i:BehaviorCollection>
</Setter.Value>
</Setter>
</Style>
Este é meuBehavior
:
[DefaultEvent(typeof(ScrollViewer),"DoubleTapped")]
public class ScrollViewerDoubleTap : DependencyObject, IAction
{
public object Execute(object sender, object parameter)
{
ScrollViewer sv = (ScrollViewer)sender;
if (sv.HorizontalScrollBarVisibility == ScrollBarVisibility.Disabled)
{
sv.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden;
}
else
{
sv.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled;
}
return sender;
}
}
E é assim que eu estou usando:
<ScrollViewer Style="{StaticResource Image}" MaxWidth="1067">
<Border BorderBrush="Black" BorderThickness="1">
<Image Source="MyImage.png"/>
</Border>
</ScrollViewer>
Quando clico duas vezes na primeira imagem em uma página com esse estilo, ela funciona perfeitamente; no entanto, ao tocar duas vezes nas outras imagens da página, o código de comportamento nunca é executado. Eu sei que nunca é executado porque o executei com pontos de interrupção, e ele quebraria quando eu tocasse duas vezes na primeira imagem, mas não na segunda. Agradeço qualquer dica sobre por que isso está acontecendo.