C# 如何检查Windows设备是手机还是平板电脑/pc?

C# 如何检查Windows设备是手机还是平板电脑/pc?,c#,windows,windows-runtime,windows-phone-8.1,C#,Windows,Windows Runtime,Windows Phone 8.1,如何检查Windows设备是手机还是平板电脑/PC?我需要知道,为了对xaml元素使用不同的大小,我想您可以尝试使用类: public static bool DeviceIsPhone() { Type StatusBarType = Type.GetType("Windows.UI.ViewManagement.StatusBar, Windows, Version=255.255.255.255, Culture=neutral, PublicKeyToke

如何检查Windows设备是手机还是平板电脑/PC?我需要知道,为了对xaml元素使用不同的大小,我想您可以尝试使用类:

    public static bool DeviceIsPhone()
    {
        Type StatusBarType = Type.GetType("Windows.UI.ViewManagement.StatusBar, Windows, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime");
        if (StatusBarType != null)
            return true;
        return false;
    }

在WP上,它应该返回桌面上的
WindowsPhone
Windows

您不应该根据它是手机还是平板电脑使用不同大小的Xaml。您应该根据屏幕的大小和分辨率使用不同的Xaml

在Windows 8.1上,Xaml差异很大,您可能需要为手机和PC/平板电脑执行不同的操作,但在这种情况下,您通常会为这两个项目使用不同的Xaml文件。您还可以使用手机和PC/平板电脑特定样式的两个版本的资源字典,并将它们放置在特定于平台的项目中,以获得每个设备上的不同行为

如果您真的想从代码中了解这一点,在8.1上,您总是为手机和平板电脑使用不同的二进制文件:您可以使用编译时常量编译:

bool IsAPhone()
{
#if WINDOWS_PHONE_APP
    return true;
#else
    return false;
#endif
}
在Windows 10上,您将使用相同的二进制文件和相同的Xaml API,并且相同的设备可能同时显示在小屏幕(电话)和大屏幕上

虽然您仍然可以使用单独的Xaml文件为不同的设备定制UI,但您也可以使用响应技术(可视状态和AdaptiveTriggers、RelativePanel等)为窗口大小回流UI,以便同一应用程序可以根据屏幕大小提供不同但适当的视图,而不考虑应用程序运行的设备


查看构建会话以了解更多详细信息。

我不知道,但是。。我很确定应该有更好的办法。应该有。这是我找到的唯一功能解决方案
bool IsAPhone()
{
#if WINDOWS_PHONE_APP
    return true;
#else
    return false;
#endif
}