2011-08-17 85 views
0

在我的應用我有視頻鏈接,現在,當您點擊鏈接IE瀏覽器啓動,並問你:「點擊打開文件」點擊打開文件

我希望能在來這,有什麼建議?

我用一個簡單的HyperlinkBut​​ton具有圖像作爲模板,

回答

3

而不是使用HyperlinkBut​​ton的NavigateUri財產,你可以發揮的MediaElement內的視頻一個單獨的頁面上。

首先,將一個新頁面添加到您的項目(MoviePlayer.xaml)中並放入一個MediaElement。然後

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財產和:處理在代碼中MediaElement.Loaded事件背後以及電纜鋪設工作的OnNavigatedTo和OnNavigatingFrom事件像這樣運行:

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類型的解決方案,只需在@chriskoenig的Twitter上給我發一個ping,然後我會爲您拍攝一些東西。

/克里斯

+0

克里斯你的明星我真的很感謝你在這個幫助,這將使得應用體驗要好得多。謝謝! –