在我的应用程序中,我有视频链接,现在当您点击IE启动链接并询问“点击打开文件”时
我希望过来,有什么建议吗?
我使用的是一个简单的HyperlinkButton,它有一个图像作为模板,
答案 0 :(得分:3)
您可以在单独的页面上播放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以处理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我,我就会拍你的东西。
/克里斯