点按即可打开文件

时间:2011-08-17 21:32:09

标签: windows-phone-7

在我的应用程序中,我有视频链接,现在当您点击IE启动链接并询问“点击打开文件”时

我希望过来,有什么建议吗?

我使用的是一个简单的HyperlinkBut​​ton,它有一个图像作为模板,

1 个答案:

答案 0 :(得分:3)

您可以在单独的页面上播放MediaElement中的视频,而不是使用HyperlinkBut​​ton的NavigateUri属性。

首先,在项目中添加一个新页面(MoviePlayer.xaml)并在其中放入一个MediaElement。处理后面代码中的MediaElement.Loaded事件以及连接OnNavigatedTo和OnNavigatingFrom事件:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    var qs = NavigationContext.QueryString["url"];
    MyMovie.Source = new Uri(qs, UriKind.Absolute);
}

protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e)
{
    MyMovie.Stop();
    base.OnNavigatingFrom(e);
}

private void MyMovie_Loaded(object sender, RoutedEventArgs e)
{
    MyMovie.Position = new TimeSpan(0);
    MyMovie.Play();
}

然后在您的主页面中,更改HyperlinkBut​​ton以处理Click事件而不是设置NavigateUri属性,并运行以下内容:

private void HyperlinkButton_Click(object sender, System.Windows.RoutedEventArgs e)
{
    var button = sender as HyperlinkButton;
    var video = button.DataContext as VideoWrapperClass; // name, url, playing time, etc.
    NavigationService.Navigate(new Uri("/MoviePlayer.xaml?url=" + video.Url, UriKind.Relative));
}

这就是它的全部!使用这种方法,您还可以根据需要自定义播放体验,或者运行一些自定义动画,例如保险杠或广告叠加。

如果您更愿意看一个MVVM类型的解决方案,只需在Twitter上通过@chriskoenig ping我,我就会拍你的东西。

/克里斯