零元学Expression Blend 4 - Chapter 8 用实例了解布局容器系列-「Grid」

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 原文:零元学Expression Blend 4 - Chapter 8 用实例了解布局容器系列-「Grid」 本系列将教大家以实做案例认识Blend 4 的布局容器,此章介绍的是Blend 4 里的布局容器大哥-「Grid」。
原文: 零元学Expression Blend 4 - Chapter 8 用实例了解布局容器系列-「Grid」


本系列将教大家以实做案例认识Blend 4 的布局容器,此章介绍的是Blend 4 里的布局容器大哥-「Grid」。



?

本系列将教大家以实做案例认识Blend 4 的布局容器,此章介绍的是Blend 4 里的布局容器大哥-「Grid

?

?

?

就是要让不会的新手都看的懂!

?

?

?

<实至名归的容器大哥>

Blend 4内的容器有很多种,比较常运用到的除了有GridCanvasBorderStackPanel,还有可以配合运用的DockPanelGridSplitter、以及新增加的PathListBox等等。

当然还有其他的容器,以後会一一介绍。

?

开启一个新专案,我们可以看到在Blend 4主要工作区就是以Grid做为预设的容器。

8-1

?

简单来说,Grid就像是html的table一样,为设计页面时最外层的版型容器,而Grid也是最常用到的布局容器。

学好布局容器是很重要的,若不会善用容器,很容易就会发生做不出预期相同的版面,而你会了Grid,就等於会了一半的容器了!!

?

?

<以实做学会Grid> 运用(一)

本段要教大家如何运用Grid的特性,让页面里的物件不会因为浏览器的视窗大小而改变物件大小

?

01

打开Blend 4 後选择Top Menu的 File->New Project(快捷键Shift+Ctrl+N)。

选择Silverlight Application+ Website为你的项目类型;把主要工作区大小改为800*600後,我们把版面切成九格。

在Blend4 中分割行跟列,只需要将滑鼠放在主要版面的外围深蓝色区块上,单击滑鼠後就会产生分割线。

分割完後,我们运用分割线的位置设定把版面调成九等份,如下图:

8-2

可以看到Layout的width的地方,我们设定为0.33,值为Star

以原始码来看,行跟列皆为0".33*",0.33後面的星号,代表着该行或该列宽度或高度将会跟着内容的改变而改变;

相反的,若是没有星号,代表着该行列不会因为内容的改变而改变,会固定宽高值。

?

		 <UserControl
		     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 
  
   
  
		     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 
  
   
  
		     x:Class="SilverlightApplication3.MainPage"
 
  
   
  
		     Width="800" Height="600">
 
  
   
  
		? 
 
  
   
  
		     <Grid x:Name="LayoutRoot" Background="White">
 
  
   
  
		         <Grid.RowDefinitions>
 
  
   
  
		             <RowDefinition Height="0.33*"/>
 
  
   
  
		             <RowDefinition Height="0.33*"/>
 
  
   
  
		             <RowDefinition Height="0.33*"/>
 
  
   
  
		         </Grid.RowDefinitions>
 
  
   
  
		         <Grid.ColumnDefinitions>
 
  
   
  
		             <ColumnDefinition Width="0.33*"/>
 
  
   
  
		             <ColumnDefinition Width="0.33*"/>
 
  
   
  
		             <ColumnDefinition Width="0.33*"/>
 
  
   
  
		         </Grid.ColumnDefinitions>
 
  
   
  
		     </Grid>
 
  
   
  
		 </UserControl>
 
 

?

02

接着我们放入9个相同大小的Rectangle

我随意的在9格里面各放一个之後,全选它们,一并设定长、宽,还有边界。

如下图:

8-3

?

完成後,按下F5,我们来看看效果。

?

请拖动浏览器右下角,使浏览器的视窗变大或缩小。

发现了吗?我们所置入的9个Rectangle并没有因为浏览器的视窗变大或缩小而有所改变。

?

那若是我们要让所置入的物件能跟着浏览器等比例的变大或缩小该如何设定呢?

?

<以实做学会Grid> 运用(二)

本段要教大家如何运用Grid的特性,让页面里的物件可以藉着浏览器视窗缩放达到等比例的改变。

?

01

我们直接使用刚刚的专案来做应用。

同样的,我们全选9个Rectangle後,点选Layout的width还有heigh後方的Set of Auto;为了清楚的分隔每个Rectangle,所以我们把边界的距离拉大,接设为10。

接着,UserControl的width与heigh也要一并改为Auto,会变成下图:

8-4

?

Rectangle都不见了!?

别紧张,我们看看原始码:

		 <UserControl
		     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 
  
   
  
		     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 
  
   
  
		     x:Class="SilverlightApplication3.MainPage">
 
  
   
  
		? 
 
  
   
  
		     <Grid x:Name="LayoutRoot" Background="White">
 
  
   
  
		         <Grid.RowDefinitions>
 
  
   
  
		             <RowDefinition Height="0.333*"/>
 
  
   
  
		             <RowDefinition Height="0.333*"/>
 
  
   
  
		             <RowDefinition Height="0.333*"/>
 
  
   
  
		         </Grid.RowDefinitions>
 
  
   
  
		         <Grid.ColumnDefinitions>
 
  
   
  
		             <ColumnDefinition Width="0.334*"/>
 
  
   
  
		             <ColumnDefinition Width="0.334*"/>
 
  
   
  
		             <ColumnDefinition Width="0.332*"/>
 
  
   
  
		         </Grid.ColumnDefinitions>
 
  
   
  
		         <Rectangle Fill="#FF212168" Margin="10" Stroke="Black"/>
 
  
   
  
		         <Rectangle Grid.Column="1" Fill="#FF212168" Margin="10" Stroke="Black"/>
 
  
   
  
		         <Rectangle Grid.Column="2" Fill="#FF212168" Margin="10" Stroke="Black"/>
 
  
   
  
		         <Rectangle Fill="#FF212168" Margin="10" Grid.Row="1" Stroke="Black"/>
 
  
   
  
		         <Rectangle Grid.Column="1" Fill="#FF212168" Margin="10" Grid.Row="1" Stroke="Black"/>
 
  
   
  
		         <Rectangle Grid.Column="2" Fill="#FF212168" Margin="10" Grid.Row="1" Stroke="Black"/>
 
  
   
  
		         <Rectangle Fill="#FF212168" Margin="10" Grid.Row="2" Stroke="Black"/>
 
  
   
  
		         <Rectangle Grid.Column="1" Fill="#FF212168" Margin="10" Grid.Row="2" Stroke="Black"/>
 
  
   
  
		         <Rectangle Grid.Column="2" Fill="#FF212168" Margin="10" Grid.Row="2" Stroke="Black"/>
 
  
   
  
		     </Grid>
 
  
   
  
		 </UserControl>
 
 

我们可以很明显的看到,原本在原始码第五行的地方,UserControl的width为800、height为600;

?

而现在我们UserControl的width与height皆为Auto,所以原始码不会显示,原因是因为Auto是UserControl容器的预设值。

往下拉,有9个我们设计好的Rectangle。

?

完成後,按下F5,我们来看看效果。

?

请拖动浏览器右下角,使浏览器的视窗变大或缩小。

你会了解,我们所置入的9个Rectangle能跟着浏览器等比例的变大或缩小。

?

Grid厉害的地方不只这样喔!

想知道Grid的还能怎麽使用吗?

~下集待续~

?

?

?

本篇的教学就到此。

?

(若有任何错误的地方,请各位前辈或同好能不吝指教,小女子都会虚心接受;若是你喜欢我的教学,请给我点鼓励,谢谢。)

一步一步迈向HIE之路

 

喜欢我文章请推我一下或给我个回应,你的鼓励会给我无限的动力喔!

若是您有其他问题或是特别需要,请在文章回应处留言,我会尽快回覆您

 

 

目录
相关文章
|
NoSQL 关系型数据库 Redis
Docker的通俗理解和通过宿主机端口访问Redis容器的实例
本文目标:引导初学者入门Docker,理解镜像、容器和宿主机概念,学习常用Docker命令,特别是如何创建并从Redis容器通过宿主机端口访问。 关键点: - Docker核心:镜像(类)、容器(实例)、宿主机(运行环境)。 - `docker pull` 拉取镜像,如 `redis:3.0`。 - `docker run -d --name` 后台运行容器,如 `my-redis`。 - `-p` 参数做端口映射,如 `6379:6379`。 - `docker exec -it` 交互式进入容器,如 `bash` 或执行命令。
491 4
|
5天前
|
Java 虚拟化 容器
(Java)Java里JFrame窗体的基本操作(容器布局篇-1)
容器 容器,我的理解是可以包容其他东西的玩意。它可以是一个盒子,可以是一个虚拟化的物品,可只要能包裹住其他存在质体的东西,那么都可以称作是容器。例如:JPanel组件和JScollPane组件两者都是容器也是组件。 既然有容器,那么容器中的布局就必不可少了。不然不规矩的摆放物品,人类看不习惯,我也看不习惯 ???? 本篇内容,将说明java JFrame窗体里容器中几类布局。 说明:所有在JFrame窗体里的容器布局都会使用setLayout()方法,采用的布局参数都将放进这个方法里 绝对布局 调用窗体容器
25 1
|
7月前
|
前端开发 API 开发者
harmonyOS基础- 快速弄懂HarmonyOS ArkTs基础组件、布局容器(前端视角篇)
本文由黑臂麒麟(6年前端经验)撰写,介绍ArkTS开发中的常用基础组件与布局组件。基础组件包括Text、Image、Button等,支持样式设置如字体颜色、大小和加粗等,并可通过Resource资源引用统一管理样式。布局组件涵盖Column、Row、List、Grid和Tabs等,支持灵活的主轴与交叉轴对齐方式、分割线设置及滚动事件监听。同时,Tabs组件可实现自定义样式与页签切换功能。内容结合代码示例,适合初学者快速上手ArkTS开发。参考华为开发者联盟官网基础课程。
537 75
harmonyOS基础- 快速弄懂HarmonyOS ArkTs基础组件、布局容器(前端视角篇)
|
4月前
|
设计模式 开发者 UED
123. [HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 基础篇
在现代移动应用和平板应用中,侧边栏导航已经成为一种常见且实用的UI设计模式。HarmonyOS NEXT提供了专门的`SideBarContainer`组件来实现这一功能,它能够轻松创建可显示和隐藏的侧边栏布局,非常适合新闻阅读、电子商务、文件管理等应用场景。
115 3
123. [HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 基础篇
|
4月前
|
UED 容器
124.[HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 进阶篇
在基础篇中,我们学习了如何使用HarmonyOS NEXT的`SideBarContainer`组件创建新闻阅读应用的基本侧边栏布局。本篇教程将深入探讨如何为新闻阅读应用添加更多交互功能和状态管理,提升用户体验。
96 1
124.[HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 进阶篇
|
4月前
|
UED 容器
10.HarmonyOS Next布局进阶:嵌套Flex容器与空间分配策略
在HarmonyOS Next的ArkUI框架中,Flex布局是构建用户界面的核心技术之一。通过嵌套使用Flex容器,我们可以创建复杂而灵活的界面结构,满足各种应用场景的需求。本教程将深入探讨如何在HarmonyOS Next中使用嵌套Flex容器实现复杂布局,以及如何合理分配和控制空间。
118 0
|
监控 Serverless 文件存储
函数计算产品使用问题之如何确保新建的实例拉取的是最新的自定义容器镜像
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
114 0
|
运维 Ubuntu Shell
掌握Docker容器的创建:从镜像到实例
【8月更文挑战第27天】
2222 4
|
SQL Shell 数据库
在TDengine容器中创建初始化数据库的Shell命令实例
以上就是在Docker容器环境中部署并初始化TDengine数据库的全过程,希望对你有所帮助。
385 0
|
容器 iOS开发 Linux
震惊!Uno Platform 响应式 UI 构建秘籍大公开!从布局容器到自适应设计,带你轻松打造跨平台完美界面
【8月更文挑战第31天】Uno Platform 是一款强大的跨平台应用开发框架,支持 Web、桌面(Windows、macOS、Linux)及移动(iOS、Android)等平台,仅需单一代码库。本文分享了四个构建响应式用户界面的最佳实践:利用布局容器(如 Grid)适配不同屏幕尺寸;采用自适应布局调整 UI;使用媒体查询定制样式;遵循响应式设计原则确保 UI 元素自适应调整。通过这些方法,开发者可以为用户提供一致且优秀的多设备体验。
449 0