UWP 适配不同设备 屏幕
1、DeviceFamily-Type文件夹
将Index.xaml拷贝到DeviceFamily-Desktop 和DeviceFamily-Mobile,删除这2个目录下的Index.xmal.cs 文件。

2、DeviceFamily-Type扩展
通过创建新的XAML视图达到同样的效果,使用同样的名称,但是DeviceFamily-Type是扩展的。比如MainPage页面,它意思是添加一个新的XAML视图文件叫MainPage.DeviceFamily-Mobile.xaml,它放在和MainPage同样的文件夹。

3、InitializeComponent重载
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(); } }
4、VisualStateManager
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="Narrow">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="tabLayout.(Grid.Column)" Value="1" />
<Setter Target="tabLayout.(Grid.Row)" Value="1" />
<Setter Target="pivot.(Grid.Column)" Value="1" />
<Setter Target="pivot.(Grid.Row)" Value="0" />
<Setter Target="tabLayout.Orientation" Value="Horizontal" />
<Setter Target="tabLayout.Width" Value="Auto" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Wide">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="501" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="tabLayout.(Grid.Column)" Value="0" />
<Setter Target="tabLayout.(Grid.Row)" Value="0" />
<Setter Target="pivot.(Grid.Column)" Value="1" />
<Setter Target="pivot.(Grid.Row)" Value="0" />
<Setter Target="tabLayout.Orientation" Value="Vertical" />
<Setter Target="tabLayout.Width" Value="60" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
原文出处
http://www.cnblogs.com/kiminozo/p/4738355.html
http://www.cnblogs.com/mushroom/p/5080032.html
转载请标明出处:http://www.cnblogs.com/xiaocaidev/p/7045500.html,本文出自:【xiaocaidev的博客】

浙公网安备 33010602011771号