2017-02-15 24 views
2

В приложении UWP Я хочу контролировать некоторые анимации на втором экране из главного окна приложения. Насколько я могу судить, у меня есть два варианта: создайте second Window или используйте projection feature.UWP: Управление вторым окном из главного окна

Мои вопросы:

  • Какой вариант будет иметь больше смысла/будет легче реализовать в этом сценарии?
  • Как я могу реагировать на события из моего главного окна на моем втором экране?
+0

Можете ли вы читать по-китайски? Я пишу некоторые о подключении к двум страницам, а некоторые из них рассказывают о MVVM в этой статье [http://lindexi.oschina.io/lindexi/post/win10-uwp-MVVM%E5%85%A5%E9%97%A8 /). Хороший способ подключения двух страниц - использование MVVMLight, см .: http://www.mvvmlight.net/ – lindexi

+0

Sry, я не могу :-( – Thomas

ответ

2

О Q2:

Есть какой-то способ, чтобы взаимодействовать с несколькими модели потоков. Если вы пишете свое приложение на основе примера MultiView, вы можете использовать метод SecondaryViewsHelper для вызова на других страницах и т. Д. Или вы можете вызывать LaunchUriAsync со всех страниц. Если вы зарегистрируете свое приложение в качестве обработчика протокола, вы можете получить вызов по методу OnLaunched. Это обычное явление как для проекции, так и для Multi-View.

Эта страница SO также помогает :)

Multiple instances of a Windows Universal App (Windows 10)

Отредактировано: Образец - Он используется на моем UWP приложение - добавил.

// This is a method of Application class "F10Client". 
    // SecondaryViews is a member of this class. 
    // In my app, this method is called when the app resumes. 
    public async Task<bool> TogglePrivateMaskForAllPages(bool isMask) 
    { 
     bool retVal = true; 
     if (null != ((F10Client)F10Client.Current).SecondaryViews && 0 < ((F10Client)F10Client.Current).SecondaryViews.Count) 
     { 
      foreach (var view in ((F10Client)F10Client.Current).SecondaryViews) 
      { 
       // You should use dispatcher to call the page method. 
       await view.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => 
       { 
        var thePage = (ImagePage)((Frame)Window.Current.Content).Content; 
        // calling the method. 
        thePage.TogglePrivacyMask(isMask); 
       }); 
      } 
     } 
     return retVal; 
    } 
+1

Глядя на образцы UWP, MultiView & Projection выглядят очень похожими, где вы создаете новый фрейм с новым представлением. Возможно, мне понадобится SecondaryViewsHelper для управления проекцией, так как это его собственный экземпляр представления, правильно? – Thomas

+0

Ах, вы правы. Я неправильно понял модель проекции. Я изменю его. – pnp0a03

+0

Не могли бы вы привести пример, как использовать SecondaryViewsHelper для вызова методов в других представлениях? В частности, я хочу передать событие прокрутки во второе представление. – Thomas

 Смежные вопросы

  • Нет связанных вопросов^_^