DeviceFamily 特定代码

通常,UWP 用于制作在 Windows 10 上跨多个不同设备运行的单个应用程序。但是,也可以为特定设备制作代码。你可以通过几种不同的方式实现此目的。

不同的 XAML 布局

如果要对特定设备系列使用特定布局,可以通过创建与默认 XAML 文件同名的新 XAML 页面项目来执行此操作,并使用后缀指示你要定位的设备系列。然后,你就必须 MainPage.xaml 中的所有设备和 MainPage.DeviceFamily- [特定家庭] .XAML 只为一个特定的家庭,这将覆盖默认布局,见下图:

StackOverflow 文档

如果要对大量文件执行此操作,可以创建一个名为 DeviceFamily- [特定系列] 的文件夹,并将所有 XAML 页面放入其中,但现在与默认的 XAML 文件名称完全相同(见下文)。在这两个示例中,所有页面都将共享相同的代码隐藏文件,因此功能相同,但布局是根据特定的屏幕大小定制的。

StackOverflow 文档

特定家庭的代码

如果你只想在特定设备系列上运行部分代码隐藏或 ViewModel,则可以使用 AnalyticsVersionInfo 类中的 DeviceFamily 属性。

AnalyticsVersionInfo avi = AnalyticsInfo.VersionInfo;
var deviceFamily = avi.DeviceFamily;

if(deviceFamily == "Windows.Mobile")
{
   Console.WriteLine("You're on mobile device right now.");
}
else if(deviceFamily == "Windows.Desktop")
{
   Console.WriteLine("You're on desktop");
}
else if(deviceFamily == "Windows.IoT")
{
   Console.WriteLine("You're on IoT");
}
//....