C# UWP:从主窗口控制第二个窗口
在UWP应用程序中,我想在主应用程序窗口的第二个屏幕上控制一些动画。 据我所知,我有两个选择:创建或使用 我的问题是:C# UWP:从主窗口控制第二个窗口,c#,uwp,win-universal-app,windows-10-universal,C#,Uwp,Win Universal App,Windows 10 Universal,在UWP应用程序中,我想在主应用程序窗口的第二个屏幕上控制一些动画。 据我所知,我有两个选择:创建或使用 我的问题是: 在这种情况下,哪个选项更有意义/更容易实现 如何对第二个屏幕上主窗口中的事件作出反应 关于第二季度: 有一些方法可以与多线程模型交互。如果您基于MultiView示例编写应用程序,您可以在其他页面上使用SecondaryViewsHelper调用方法,等等。或者,您可以从每个页面调用Launchurisync。如果将应用程序注册为协议处理程序,则可以通过OnLaunched方
- 在这种情况下,哪个选项更有意义/更容易实现
- 如何对第二个屏幕上主窗口中的事件作出反应
// 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;
}
//这是应用程序类“F10Client”的方法。
//SecondaryViews是此类的成员。
//在我的应用程序中,此方法在应用程序恢复时调用。
公共异步任务切换PrivateMaskForallPages(布尔isMask)
{
bool-retVal=true;
如果(null!=((F10Client)F10Client.Current).SecondaryViews和&0<((F10Client)F10Client.Current).SecondaryViews.Count)
{
foreach(在((F10Client)F10Client.Current.SecondaryView中的变量视图)
{
//您应该使用dispatcher调用page方法。
wait view.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,()=>
{
var thePage=(ImagePage)((Frame)Window.Current.Content).Content;
//调用该方法。
页面切换PrivacyMask(isMask);
});
}
}
返回返回;
}
对于我的第一个问题,帮助我选择了正确的道路:
你会读中文吗?我写了一些关于连接到两个页面的内容,并介绍了一些关于MVVM的内容。连接两个页面的好方法是使用MVVMLight,请参阅:查看UWP示例,MultiView&Projection看起来非常相似,您可以使用新视图创建一个新框架。我可能还需要SecondaryViewsHelper来控制投影,因为它是自己的视图实例,对吗?啊,你说得对。我误解了投影模型。我会修改它。你能举个例子吗,如何使用SecondaryViewsHelper在其他视图中调用方法?具体来说,我想将一个滚动事件传递给第二个视图。