UWP开发-自适应布局

了解css的人知道,对于不一样的屏幕尺寸,css使用一种名为媒体查询的东东来适用不一样的屏幕尺寸,以提高用户体验。当用户使用PC等大屏幕的设备时,网页将呈现一种布局形式;而当用户使用手机等小屏幕设备时,布局将发生变化,好比将原来的两列布局变为一列。css

就是这个!html

@media screen and (min-width:600px) {
  nav {
    float: left;
    width: 25%;
  }
  section {
    margin-left: 25%;
  }
}
@media screen and (max-width:599px) {
  nav li {
    display: inline;
  }
}

参考连接:http://zh.learnlayout.com/media-queries.htmlapp

     https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Media_querieside

固然,做为宣称跨设备的UWP,也有对应的机制,这就是UWP的自适应布局。布局

UWP的自适应布局十分简单,只在XAML里面写就好,使得咱们不再会由于用户使用手机时,某些UI元素被掩盖或者变得异常丑陋,或者在C#里面处理这些破事啦。ui

一个例子:spa

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="VisualStateGroup">
                <VisualState x:Name="Narrow">
                    <VisualState.StateTriggers>
                        <AdaptiveTrigger MinWindowWidth="0"/>
                    </VisualState.StateTriggers>
                    <VisualState.Setters>
                        <Setter Target="img.Width" Value="40"/>
                        <Setter Target="tb.FontSize" Value="14"/>
                    </VisualState.Setters>
                </VisualState>
                <VisualState x:Name="Wide">
                    <VisualState.StateTriggers>
                        <AdaptiveTrigger MinWindowWidth="800"/>
                    </VisualState.StateTriggers>
                    <VisualState.Setters>
                        <Setter Target="img.Width" Value="80"/>
                        <Setter Target="tb.FontSize" Value="24"/>
                    </VisualState.Setters>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Image x:Name="img"
               Source="Assets/logo.png"
               Grid.Row="1"/>
        <TextBlock x:Name="tb"
                   Grid.Row="2"
                   VerticalAlignment="Center"
                   HorizontalAlignment="Center"
                   TextWrapping="Wrap"
                   Text="微软开发者峰会明天就开了,土鳖只能看直播了"/>
    </Grid>

运行结果:code

(大屏幕)htm

 

 

 

(小屏幕)blog

解释一下XAML,实际上十分简单。在这个例子里,咱们须要注意几点:视觉状态管理器(VisualStateManager),自适应触发器(AdaptiveTiggers),在设置器(Setter)中对相应元素属性的值赋值便可,就像上面的那样。

 

固然,你也能够对特定设备写特定的布局。好比你但愿在pc上将一个按钮放在标题附近,可是在mobile上,为了操做方便,你但愿将这个按钮放在最下面,方便用户的点击,这里我提供一篇博客,写的很是好。

对特定设备定制特定布局 连接:http://igrali.com/2015/08/02/three-ways-to-set-specific-devicefamily-xaml-views-in-uwp/

相关文章
相关标签/搜索