Xaml 如何检测Windows Mobile已转换为连续模式?

Xaml 如何检测Windows Mobile已转换为连续模式?,xaml,windows-runtime,windows-phone,win-universal-app,Xaml,Windows Runtime,Windows Phone,Win Universal App,有没有办法检测Windows Mobile 10是否转换为连续模式 Windows Phone上的消息框与桌面上的消息框完全不同,我们的设计师希望实现对等。我想写我们自己的版本,但我只想它在手机上工作-我想在桌面上或当应用程序在手机上转换为continuum时使用默认版本 有什么想法吗 我在网上找不到任何东西,也找不到任何允许我检测它的API。我可能错了,但我不认为有一个用于Continuum的API。手机连续体的概念是,你将从一个固定的显示尺寸变成一个可变的尺寸。检测这种情况的最佳方法是使用可

有没有办法检测Windows Mobile 10是否转换为连续模式

Windows Phone上的消息框与桌面上的消息框完全不同,我们的设计师希望实现对等。我想写我们自己的版本,但我只想它在手机上工作-我想在桌面上或当应用程序在手机上转换为continuum时使用默认版本

有什么想法吗


我在网上找不到任何东西,也找不到任何允许我检测它的API。

我可能错了,但我不认为有一个用于Continuum的API。手机连续体的概念是,你将从一个固定的显示尺寸变成一个可变的尺寸。检测这种情况的最佳方法是使用可视状态触发器或检查窗口大小是否已更改


通过检查设备系列
AnalyticsInfo.VersionInfo.DeviceFamily
是否为
Windows.Mobile
,您将知道您正在使用当前处于连续模式的手机设备

由于以下MSDN文件, Windows 10 Mobile连续体功能检测没有特殊触发器


为了在移动应用程序上找到解决方案,您可以从自适应UI中获益,您可以通过屏幕分辨率更改
窗口.Current.SizeChanged
,检查应用程序,然后,您可以结合设备系列
AnalyticsInfo.VersionInfo.DeviceFamily
来检查设备是否处于连续模式。

要检测应用程序是否在连续模式下运行,您需要检查两件事:
设备系列
用户交互模式

public static bool IsInContinuum()
{
   if (DeviceFamily() == DeviceFamilyType.Mobile && UIViewSettings.GetForCurrentView().UserInteractionMode == UserInteractionMode.Mouse)
      return true;

   else
      return false;
}
引自:

“使用Continuum,当您的应用程序位于移动设备上时,“触摸”将始终返回,当您的应用程序位于连接的显示器上时,“鼠标”将始终返回。”


因此,您需要在
SizeChanged
事件中检查应用程序是否以连续模式运行。

我认为您仍然可以在手机上运行应用程序,同时让连续模式运行。所以我不认为会有过渡事件。你不能100%确定应用程序的窗口是否显示在单独的屏幕上,而不仅仅是手机的大小。这是真的@khamitimur,但在创建通用Windows应用程序时,你应该考虑应用程序的适应性。了解DeviceFamily可以让您选择以给定的屏幕分辨率使用该移动家庭。这是您开始组合状态触发器的时候。我会用一些XAML更新我的答案,让我的答案更清晰一些。有时候,我真的需要知道应用程序是否显示在30英寸的屏幕上,而不是在5英寸的手机上。就像你需要正确显示
文本框时一样。我现在也在考虑使用
设备家庭和物理显示大小(缩放*大小)。目前,Continuum使用全屏幕,因此它将在99.9%的时间内工作。