Windows phone 7 点击打开文件

Windows phone 7 点击打开文件,windows-phone-7,Windows Phone 7,在我的应用程序中,我有视频链接,现在当你点击链接IE启动并要求你“点击打开文件” 我想过来,有什么建议吗 我使用的是一个简单的HyperlinkButton,它的模板是图像,而不是使用HyperlinkButton的NavigateUri属性,您可以在单独的页面上的MediaElement中播放视频 首先,向项目中添加一个新页面(MoviePlayer.xaml),并在其中添加一个MediaElement。在代码隐藏中处理MediaElement.Loaded事件,并连接OnNavigatedT

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

我想过来,有什么建议吗


我使用的是一个简单的HyperlinkButton,它的模板是图像,

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

首先,向项目中添加一个新页面(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();
}
然后在主页面中,更改HyperlinkButton以处理单击事件,而不是设置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,我就会向你开枪


/chris

您可以在单独的页面上的MediaElement中播放视频,而不必使用HyperlinkButton的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();
}
然后在主页面中,更改HyperlinkButton以处理单击事件,而不是设置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,我就会向你开枪


/chris

chris你的明星我非常感谢你在这方面的帮助,这将使应用程序体验更好。非常感谢。Chris你是明星我真的很感谢你在这方面的帮助,这将使应用程序体验更好。非常感谢。