eventtocommand ManipulationCompleted

时间:2014-03-09 03:43:19

标签: c# xaml windows-phone-8 mvvm-light

我正在为我的Windows Phone编写一个小型媒体播放器(更多用于学习目的),并使用mvvm-light。 当视频播放时,我有一个定时更新滑块位置的定时器(并确保它同步)。当我滑动滑块时,我会暂停计时器,因此它不会跳过。 我使用ManipulationStarted事件暂停计时器,并使用ManipulationComplete恢复计时器。

我尝试过使用EventToCommand,但只触发了ManipulationStarted事件。当我将手指从手机上抬起时,ManipulationComplete不会触发。

这是我的xaml:

<Slider x:Name="PlaybackSlider" HorizontalAlignment="Stretch" Margin="20,0" VerticalAlignment="Bottom" Maximum="{Binding MaxSteps}" Value="{Binding Offset, Mode=TwoWay}" Style="{StaticResource SliderStyle1}" >
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="ManipulationStarted">
            <Command:EventToCommand Command="{Binding PlayOffsetBegin}"/>
        </i:EventTrigger>
        <i:EventTrigger EventName="ManipulationCompleted">
            <Command:EventToCommand Command="{Binding PlayOffsetEnd}"/>
        </i:EventTrigger>
        <i:EventTrigger EventName="MouseMove">
            <Command:EventToCommand Command="{Binding PlayOffsetUpdate}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Slider>

绑定是中继命令。

如果我像这样实现它,一切正常:

<Slider x:Name="PlaybackSlider" 
    ManipulationStarted="PlaybackSlider_ManipulationStarted" 
    ManipulationCompleted="PlaybackSlider_ManipulationCompleted" 
    HorizontalAlignment="Stretch" Margin="20,0" VerticalAlignment="Bottom" 
    Maximum="{Binding MaxSteps}" Value="{Binding Offset, Mode=TwoWay}"/>

0 个答案:

没有答案