Lost !

-----hard working for the furture.

导航

统计

WP7开发第二课:基本布局系统以及基本控件(其一)

上一课主要讲WP7应用的一些基本常识,是作为快速上手使用的,但是这往往是不够的,我们还需要知道更多的细节,那么接下来的几课就比较有针对性的讲一些知识。

 

 当然,我们一般先从控件开始,WP7的控件基本上是来自silverlight控件,当然它也去除了一些不适合WP7的东西。

 

首先我们来看下布局控件吧。

 

一:StackPanel 这是一个堆栈面板,其子元素一般是按照横排,或是竖排,放置,默认为竖排。可以设置Orientation属性

 

调整子元素排布方式。例如:

 

复制代码
<StackPanel Orientation="Horizontal">
<Button Content="按钮"/>
<Button Content="按钮"/>
<Button Content="按钮"/>
<StackPanel>
<Button Content="按钮"/>
<Button Content="按钮"/>
<Button Content="按钮"/>
</StackPanel>
</StackPanel>
复制代码

 

从上面可以知道:容器为:StackPanel,其子组件是横排列,其中一个组件又有子组件,里面内容默认是竖排列,因为StackPanel默认为竖排列方式。

 

结果如下:

 

 

二:Canvas这是一个画布面板(绝对布局),其子元素一般是依据Canvs的属性进行排布,也就是依赖属性,相当于x,y坐标,但是它是Canvas.Top,Canvas.Left表示。例如:

 

<Canvas>
<Button Content="按钮" Canvas.Left="0" Canvas.Top="0"/>
<Button Content="按钮" Canvas.Left="80" Canvas.Top="0"/>
<Button Content="按钮" Canvas.Left="160" Canvas.Top="0"/>
<Button Content="按钮" Canvas.Left="80" Canvas.Top="45"/>
</Canvas>

 

以上我们定义4个按钮,然后设置其Canvas.Top,Canvas.Left 属性,也就是y,x方向坐标,当然默认为0,0,得到如下所示:

 

 

三:Grid这是一个表格面板(相当于Table),其子元素一般是依据Grid指定的单元格布局,可以设定子元素为哪行哪列,也 可以合并2个单元格,这与普通的Table是一样的。合并单元格的属性主要是: Grid.RowSpan="2"  Grid.ColumnSpan="2"  合并2行或者 2列。例如:

 

复制代码
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>

<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>

<Button Content="按钮"/>
<Button Content="按钮" Grid.Row="1" Grid.Column="0" Background="Blue"/>
<Button Content="按钮" Grid.Column="1" Grid.RowSpan="2" Background="Gray"/>
<Button Content="按钮" Grid.Row="2" Grid.ColumnSpan="2" Background="Red"/>
</Grid>
复制代码

 

以上定义3行2列的表格,默认的子组件位于一行一列,也就是Grid.Row="0" Grid.Column="0" ,它是以0为索引开始布局的。我们需要注意的是

 

Grid.RowSpan="2" Grid.ColumnSpan="2"  属性,它表示跨越2行,跨越2列的内容,显示结果为:

 

 

看见了吧,Grid是很有用处的。

 

以上就是主要的布局容器,可以作为顶层容器,也可以作为子容器,一般是不能被其他非容器包含的,但是有个东西除外,那就是Border,这个是边框,可以为容器设定一个边框,例如下面:

 

 <Border  BorderThickness="10" BorderBrush="Yellow"> 容器</Border>

 

运行结果如下:

 

 

好了,就到这里,比较简单,但是如果能好好的利用这些布局容器以及组件,加上样式Style调优的话,你会布局出非常酷的界面,当然我们要以项目为 基础,下面一节就开始我们的普通控件的简要介绍了,由于篇幅有限,我们一般只介绍普通用法,以及常用属性,方法等,需要了解更多更具体内容,可以参考官方 资料。

 

 

作者: 东子哥 发表于 2011-08-29 21:58 原文链接

posted on   失落''80  阅读(145)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示