2017-07-10 45 views
0

私はバックグラウンドで動作するアプリケーションを持っていますが、私はUWP APIでウィンドウを追加したかったのです。WPFアプリケーションでUWP UIを使用する

への参照を追加した後:

Windows.UI 
Windows.UI.Xaml 

私はUWPアプリケーションを起動しようとした:

using System; 
using System.Diagnostics; 
using Windows.ApplicationModel; 
using Windows.ApplicationModel.Activation; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Navigation; 

namespace ClipboardSync { 

    public class UWPApp : Windows.UI.Xaml.Application { 

     private bool _contentLoaded; 

     public void InitializeComponent() { 
      if (_contentLoaded) 
       return; 

      _contentLoaded = true; 
     } 

     public UWPApp() { 
      this.InitializeComponent(); 
      this.Suspending += OnSuspending; 
     } 


     protected override void OnLaunched(LaunchActivatedEventArgs e) { 
      Frame rootFrame = Window.Current.Content as Frame; 

      // Do not repeat app initialization when the Window already has content, 
      // just ensure that the window is active 
      if (rootFrame == null) { 
       // Create a Frame to act as the navigation context and navigate to the first page 
       rootFrame = new Frame(); 

       rootFrame.NavigationFailed += OnNavigationFailed; 

       if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { 
        //TODO: Load state from previously suspended application 
       } 

       // Place the frame in the current Window 
       Window.Current.Content = rootFrame; 
      } 

      if (e.PrelaunchActivated == false) { 
       if (rootFrame.Content == null) { 
        // When the navigation stack isn't restored navigate to the first page, 
        // configuring the new page by passing required information as a navigation 
        // parameter 
        rootFrame.Navigate(typeof(MainPage), e.Arguments); 
       } 
       // Ensure the current window is active 
       Window.Current.Activate(); 
      } 
     } 

     /// <summary> 
     /// Invoked when Navigation to a certain page fails 
     /// </summary> 
     /// <param name="sender">The Frame which failed navigation</param> 
     /// <param name="e">Details about the navigation failure</param> 
     void OnNavigationFailed(object sender, NavigationFailedEventArgs e) { 
      throw new Exception("Failed to load Page " + e.SourcePageType.FullName); 
     } 

     /// <summary> 
     /// Invoked when application execution is being suspended. Application state is saved 
     /// without knowing whether the application will be terminated or resumed with the contents 
     /// of memory still intact. 
     /// </summary> 
     /// <param name="sender">The source of the suspend request.</param> 
     /// <param name="e">Details about the suspend request.</param> 
     private void OnSuspending(object sender, SuspendingEventArgs e) { 
      var deferral = e.SuspendingOperation.GetDeferral(); 
      //TODO: Save application state and stop any background activity 
      deferral.Complete(); 
     } 

    } 

} 
:私はUWPテンプレートコードを追加UWPAppクラスの
Windows.UI.Xaml.Application.Start(p => new UWPApp();); 

ただし、新しいUWPAppインスタンスは作成されず、エラーメッセージも表示されません。

WPFアプリケーション内でUWPアプリケーションを開始できないような制限がありますか?

答えて

1

これは現在サポートされていません。 Windows.UI.XAML。*は現在、UWPアプリプロセスでのみ使用できます。

https://channel9.msdn.com/Events/Build/2017/B8100

しかし、BUILD2017今年初めには、このためのサポートは、Windows 10の将来のアップデートで計画されていることが発表されました

関連する問題