Поведение не работает должным образом в Style Setter
В моем приложении Windows Runtime у меня есть тема со стилем, который имеетBehavior
определено для действия DoubleTapped:
Это пространства имен XML:
xmlns:i="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
И это стиль:
<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>
Это моеBehavior
:
[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;
}
}
И вот как я это использую:
<ScrollViewer Style="{StaticResource Image}" MaxWidth="1067">
<Border BorderBrush="Black" BorderThickness="1">
<Image Source="MyImage.png"/>
</Border>
</ScrollViewer>
Когда я дважды нажимаю на первое изображение на странице, имеющей этот стиль, оно отлично работает; однако, когда я дважды нажимаю на другие изображения на странице, код поведения никогда не запускается. Я знаю, что он никогда не запускается, потому что я запускал его с точками останова, и он сломался бы, когда я дважды коснулся первого изображения, но не второго. Я буду признателен за любые советы о том, почему это происходит.