2017-04-21 2 views
1

MediaPlayerElementのCustomMediaTransportControlsを作成しています。そこで、CompactOverlayフレームを作成するボタンが必要なので、下のコードをpublic sealed class CustomMediaTransportControls : MediaTransportControlsに追加しました。保護されたメモリを読み書きしようとしています。これは、多くの場合、他のメモリが壊れていることを示します。

public async void CompactOverlayButton_ClickAsync(object sender, RoutedEventArgs e) 
{ 
    await CoreApplication.CreateNewView().Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => 
    { 
     var frame = new Frame(); 
     compactViewId = ApplicationView.GetForCurrentView().Id; 
     frame.Navigate(typeof(VideoPlayerPage)); 
     Window.Current.Content = frame; 
     Window.Current.Activate(); 
     ApplicationView.GetForCurrentView().Title = ""; 
    }); 
    bool viewShown = await ApplicationViewSwitcher.TryShowAsViewModeAsync(compactViewId, ApplicationViewMode.CompactOverlay); 
} 

しかし、これらのコードを使用すると、XAMLの部分にエラーメッセージが表示されます。 enter image description here 上記の機能を使用しなかった場合、エラーは発生しません。試してみました

ソリューション:

  1. は、PowerShellの

  2. クリアソリューションでnetsh winsock resetを実行し、参考のためのソリューション

を再構築:

  • MediaPlayerDictionary.xaml - - MediaTransportControls
  • VideosPage.xamlから派生したクラス - ここ

    は私の全体のコード

    1. CustomMediaTransportControls.csあるCustomMediaTransportControls
  • +0

    あなたが開発した 'CustomVideoControls'はありますか?安全ではない{}ブロックを使用していますか? – Milney

    +0

    @Milney質問全体にコードを添付します –

    +0

    完全なxamlコードを提供できますか? – Hannes

    答えて

    0

    の代わりに、あなたの中の変数compactViewIdを宣言する使用されていますクラスで宣言する必要があります。

    p̶u̶b̶l̶i̶c̶ ̶i̶n̶t̶ ̶c̶o̶m̶p̶a̶c̶t̶V̶i̶e̶w̶I̶d̶ ̶=̶ ̶A̶p̶p̶l̶i̶c̶a̶t̶i̶o̶n̶V̶i̶e̶w̶.̶G̶e̶t̶F̶o̶r̶C̶u̶r̶r̶e̶n̶t̶V̶i̶e̶w̶(̶)̶.̶I̶d̶; /̶/̶ I̶n̶i̶t̶i̶a̶l̶i̶z̶i̶n̶g̶ ̶c̶o̶m̶p̶a̶c̶t̶V̶i̶e̶w̶I̶d̶ ̶t̶o̶ ̶t̶h̶e̶ ̶C̶u̶r̶r̶e̶n̶t̶ ̶V̶i̶e̶w̶ ̶I̶D̶ 
    
    //Button click event for CompactOverlayButton to Create a Frame in CompactOverlay mode 
    public async void CompactOverlayButton_ClickAsync(object sender, RoutedEventArgs e) 
    { 
        await CoreApplication.CreateNewView().Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => 
        { 
         var frame = new Frame(); 
         frame.Navigate(typeof(MainPage)); 
         Window.Current.Content = frame; 
         Window.Current.Activate(); 
         ApplicationView.GetForCurrentView().Title = ""; 
        }); 
        bool viewShown = await ApplicationViewSwitcher.TryShowAsViewModeAsync(ApplicationView.GetForCurrentView().Id, ApplicationViewMode.CompactOverlay); 
    } 
    
    +0

    ありがとう、それは動作します。 [Set Visibility = "Collapsed"はボタンを隠すことはありません](http://stackoverflow.com/questions/43562297/setting-visibility-collapsed-doesnt-hide-the-button)この質問に私を助けてください。 –

    関連する問題