手把手玩转win8开发系列课程(25)

简介:

这章,我们来探讨一下metro app一个特别的特点——瓦片

在这章中,我们来探讨了微软为了更好的满足用户体验所提供的两大特征。第一大特征就是允许了metro app填满和折断。以此于他能够紧挨着出现了。我就告诉你怎么自由的停靠app的位置,满足他的布局方式。

第二点,就是一个metro app与众不同的布局的方式瓦片。这是windows的经典菜单的极大的替代品。这简单的实现这个方式, 就是放几个静态的按钮能解决这个问题。但这需要捕捉这个程序的状态了。这不好,在这章中,你讲看到如何动态的创建title  、下图展示本章的内容提要:

①彻底支持metro 布局

就目前而言,这个app程序能够充分整个屏幕上。但是,我们要设置他的数量,以至于他能够铺满整个屏幕,普通的app占用了320像素。我们一个全屏的app能不布满了屏幕其他部分。我能达到这个效果,我的源代码如下:


 1 <Page
 2  x:Class="MetroGrocer.Pages.DetailPage"
 3  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 4  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 5  xmlns:local="using:MetroGrocer.Pages"
 6  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 7  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 8  mc:Ignorable="d">
 9  <Grid x:Name="GridLayout" Background="#71C524">
10    <Grid.RowDefinitions>
11      <RowDefinition/>
12      <RowDefinition/>
13    </Grid.RowDefinitions>
14    <Grid.ColumnDefinitions>
15      <ColumnDefinition/>
16      <ColumnDefinition/>
17    </Grid.ColumnDefinitions>
18    <StackPanel x:Name="TopLeft" Background="#3E790A">
19      <TextBlock x:Name="TopLeftText"
20         Style="{StaticResource DetailViewLabelStyle}"
21         Text="Top-Left"/>
22    </StackPanel>
23    <StackPanel x:Name="TopRight" Background="#70a524" Grid.Column="1" Grid.Row="0">
24      <TextBlock x:Name="TopRightText"
25         Style="{StaticResource DetailViewLabelStyle}"
26         Text="Top-Right"/>
27    </StackPanel>
28 <!--不同的support的方式-->
29    <StackPanel x:Name="BottomLeft" Background="#1E3905" Grid.Row="1">
30      <TextBlock x:Name="BottomLeftText"
31         Style="{StaticResource DetailViewLabelStyle}" Text="Bottom-Left"/>
32    </StackPanel>
33    <StackPanel x:Name="BottomRight" Background="#45860B" Grid.Column="1"
34         Grid.Row="1">
35      <TextBlock x:Name="BottomRightText"
36           Style="{StaticResource DetailViewLabelStyle}"
37           Text="Bottom-Right"/>
38    </StackPanel>
39  </Grid>
40 </Page>

1 <Page
 2  x:Class="MetroGrocer.Pages.DetailPage"
 3  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 4  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 5  xmlns:local="using:MetroGrocer.Pages"
 6  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 7  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 8  mc:Ignorable="d">
 9  <Grid x:Name="GridLayout" Background="#71C524">
10    <Grid.RowDefinitions>
11      <RowDefinition/>
12      <RowDefinition/>
13    </Grid.RowDefinitions>
14    <Grid.ColumnDefinitions>
15      <ColumnDefinition/>
16      <ColumnDefinition/>
17    </Grid.ColumnDefinitions>
18    <StackPanel x:Name="TopLeft" Background="#3E790A">
19      <TextBlock x:Name="TopLeftText"
20         Style="{StaticResource DetailViewLabelStyle}"
21         Text="Top-Left"/>
22    </StackPanel>
23    <StackPanel x:Name="TopRight" Background="#70a524" Grid.Column="1" Grid.Row="0">
24      <TextBlock x:Name="TopRightText"
25         Style="{StaticResource DetailViewLabelStyle}"
26         Text="Top-Right"/>
27    </StackPanel>
28 <!--不同的support的方式-->
29    <StackPanel x:Name="BottomLeft" Background="#1E3905" Grid.Row="1">
30      <TextBlock x:Name="BottomLeftText"
31         Style="{StaticResource DetailViewLabelStyle}" Text="Bottom-Left"/>
32    </StackPanel>
33    <StackPanel x:Name="BottomRight" Background="#45860B" Grid.Column="1"
34         Grid.Row="1">
35      <TextBlock x:Name="BottomRightText"
36           Style="{StaticResource DetailViewLabelStyle}"
37           Text="Bottom-Right"/>
38    </StackPanel>
39  </Grid>
40 </Page>

这样子,创建一个简单五彩的grid方式。你可以看到他的布局的方式。其他有一段placeholder的空白,效果如图所示:

 

温馨提示,这个程序的遮断的方式只能在屏幕横放才能显示。 在win8消费者版本中,只有1366或者更大的分辨率中才能使用。另外,你要更好做实验的话,请在水平状态下使用吧。

损失的320像素的空间让应用程序不会造成破坏大多数程序美观,这要使你沾满了整个屏幕、很显然,你要调整他的布局的方式,在接下来的篇幅中,我将讲解的他的机制以及有所不同。


目录
相关文章
|
10天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1210 5
|
9天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1172 87
|
9天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1767 12
|
19天前
|
人工智能 运维 安全
|
2天前
|
资源调度
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
230 127
|
10天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
362 0

热门文章

最新文章