当前位置:网站首页>Three ways to set a specific device UWP XAML view
Three ways to set a specific device UWP XAML view
2022-08-04 21:05:00 【Lin Dexi】
开发者可以设置UWP特定设备xaml view,在桌面,手机,Iot,这个对于设置对不同设备的不同屏幕有用.我们可以使用RelativePanel,VisualStateTriggers,但是这样我们的xaml很大,我们在弄的时候觉得想修改一个东西会让我们把全部删了. 为了让我们可以在不同设备使用不同xaml view,我们可以有下面的方式:
在不同设备显示不同背景颜色,文本,在同xaml,开始的页面
新建文件夹DeviceFamily-Type
里面的type是我们的设备,手机:Mobile,桌面:Desktop,IOT
在我们的解决方案新建一个文件夹,我们这里在手机Mobile
我们在新建DeviceFamily-Mobile新建xaml,MainPage
新建类MainPage
如果在手机运行,就会使用DeviceFamily-Mobile/MainPage.xaml,如果是其他,就会使用解决方案DeviceFamily/MainPage.xaml
在xaml文件加.DeviceFamily-Type
第二种方式在xaml文件加.DeviceFamily-Type,我们创建一个新的xaml,MainPage.DeviceFamily-Mobile.xaml
我们不能使用方法1和2在一个工程.
我们打开mobil会使用MainPage.DeviceFamily-Mobile.xaml
InitializeComponent重载
添加一个DeviceFamily-Type文件夹在里面写一个xaml会在MainPage.g.i.cs对InitializeComponent重载.
public void InitializeComponent(global::System.Uri resourceLocator)
{
if (_contentLoaded)
return;
_contentLoaded = true;
if (resourceLocator == null)
{
resourceLocator = new global::System.Uri("ms-appx:///MainPage.xaml");
}
global::Windows.UI.Xaml.Application.LoadComponent(this, resourceLocator, global::Windows.UI.Xaml.Controls.Primitives.ComponentResourceLocation.Application);
}可以指定一个uri到需要xaml
public MainPage()
{
if (AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Mobile")
{
if (usePrimary)
{
InitializeComponent(new Uri("ms-appx:///PrimaryMainPage.xaml", UriKind.Absolute));
}
else
{
InitializeComponent(new Uri("ms-appx:///SecondaryMainPage.xaml", UriKind.Absolute));
}
}
else
{
InitializeComponent();
}
}使用DeviceFamily指定视图的效果,首先是桌面的MainPage.xaml
我们使用不同颜色放在mobil
如果使用方式3,我们需要手动在main写我们需要加载,我们有两个xaml
单页面触发器
我们可以在一个页面不同设备使用不同的xaml WindowsStateTriggers DeviceFamily sample
https://github.com/igrali/UWP-DeviceFamily
http://www.cnblogs.com/mushroom/p/5080032.html
http://igrali.com/2015/08/02/three-ways-to-set-specific-devicefamily-xaml-views-in-uwp/
边栏推荐
猜你喜欢

Configure laravel queue method using fort app manager

嵌入式分享合集28

使用百度EasyDL实现森林火灾预警识别

某男子因用本地虚拟机做压测,惨遭字节面试官当场嘲笑

Uniapp微信雪糕刺客单页小程序源码

C语言之实现扫雷小游戏

Using Baidu EasyDL to realize forest fire early warning and identification

proe和creo的区别有哪些

Matlab画图2

How to understand the crawler's Scrapy framework in the simplest and most popular way?
随机推荐
使用百度EasyDL实现森林火灾预警识别
Spss-系统聚类软件实操
Using Baidu EasyDL to realize forest fire early warning and identification
该如何训练好深度学习模型?
jekyll adds a flowchart to the blog
MySQL field type
大资本已开始逃离加密领域?
结构体小结
推荐系统_刘老师
LINQ to SQL (Group By/Having/Count/Sum/Min/Max/Avg操作符)
简述@RequestParam与@RequestBody参数注解
matlab 画图
工龄10年的测试员从大厂“裸辞”后...
【手把手教你使用STM32HAL库的串口空闲中断】
零知识证明——zkSNARK证明体系
遇到MapStruct后,再也不手写PO,DTO,VO对象之间的转换了
【2022杭电多校5 1012题 Buy Figurines】STL的运用
27.降维
用 Excel 爬取网络数据的四个小案例
PCBA方案设计——厨房语音秤芯片方案