[Winodows Phone 7控件详解]容器控件

在Windows Phone7中存在着多个容器控件,这些控件主要是用来界面的布局设置,以及包容多个控件时的布局设置。

一.Grid控件:主要用于界面的布局,这个和web page里的很相似,可以通过网格布置规划界面,也可以嵌套使用。

<Grid x:Name="LayoutRoot" Background="#DCDCDC" Width="400" Height="300" ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition Width="150" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="2*" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="10" FontWeight="Bold" Text="Contoso Corporation" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Grid x:Name="FormLayoutGrid" Grid.Row="1" Grid.Column="0" ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="First Name" Margin="10" HorizontalAlignment="Left" VerticalAlignment="Center" />
<TextBox Grid.Row="0" Grid.Column="1" Margin="10" />
<TextBlock Grid.Row="1" Grid.Column="0" Text="Last Name" Margin="10" HorizontalAlignment="Left" VerticalAlignment="Center" />
<TextBox Grid.Row="1" Grid.Column="1" Margin="10" />
<TextBlock Grid.Row="2" Grid.Column="0" Text="Address" Margin="10" HorizontalAlignment="Left" VerticalAlignment="Center" />
<TextBox Grid.Row="2" Grid.Column="1" Margin="10" />

</Grid>
</Grid>

 

二.Canvas控件  容器、布局控件,主要是用绝对坐标来定位子控件。对于游戏开发来说用处很大。

<Canvas x:Name="C1"  Grid.Row="2">
<CheckBox x:Name="CheckBox3" Content="CheckBox3" Canvas.Top="50" Canvas.Left="100" Canvas.ZIndex="1" />
</Canvas>

也可以使用代码来控制

Canvas.SetLeft();
Canvas.SetTop();
Canvas.SetZIndex();//控制子控件在Z轴上的顺序。

 

三.StackPanel控件容器、布局控件,主要用来多个子控件的纵向、横向的布局控制。

<StackPanel x:Name="stackPanel1" Margin="20" Orientation="Vertical" >
<Rectangle Fill="Red" Width="50" Height="50" Margin="5" />
<Rectangle Fill="Blue" Width="50" Height="50" Margin="5" />
<Rectangle Fill="Green" Width="50" Height="50" Margin="5" />
<Rectangle Fill="Purple" Width="50" Height="50" Margin="5" />
</StackPanel>

可以使用下面的方法向上面的StackPanel中动态插入一个Rectangle

private void button1_Click(object sender, RoutedEventArgs e)
{
Rectangle rect = new Rectangle() { Fill = new SolidColorBrush(Colors.Yellow),Width=50,Height=50};
stackPanel1.Children.Insert(2, rect);
}

四.Border控件: 用于包容一个控件并为其绘制边框,并且通过参数设置可以产生多种不同的边框效果。(不太应该算为容器控件,但是又觉得放在别的类里又不是很合适。Jake Lin 和李振都这么分,我采纳了这个观点)

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,12">
<Border Background="Coral" Width="300" Height="40" Padding="10" CornerRadius="20">
<TextBlock FontSize="16">Text Surrounded by a Border</TextBlock>
</Border>
<Border x:Name="b1" Width="200" Height="200" Background="Gold" BorderBrush="Aquamarine" BorderThickness="10, 5, 20, 40" Margin="119,346,137,49" CornerRadius="25, 200, 10, 15" >
<TextBox Height="67" Name="textBox1" Text="Test Border" Background="Gold" Foreground="White" BorderBrush="Gold" Width="170" VerticalAlignment="Bottom"/>
</Border>
</Grid>

BorderThickness:边框宽度,设置不同的值使四个边产生不同的宽度。

CornerRadius:边角半径,设置不同的值四个边角产生不同的弧度。

五.PopUp控件:严格来讲这个不应该算作容器控件,但是它可以把包含在其中的控件显示在当前页的最前面,可以被打开和关闭。可以用来制作自定义的MessageBox、WaitingBox等。

        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,36,132">
<Image Source="Images/1.jpg" Height="426" HorizontalAlignment="Left" Margin="25,25,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="386" />
<!-- 这个容器可以被打开和关闭 -->
<Popup IsOpen="True" HorizontalAlignment="Left" Margin="92,106,0,0" Name="popup1" VerticalAlignment="Top" Height="250" Width="250" >
<Canvas Width="250" Height="250" Background="Red" VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock Margin="30,120,0,0" Text="我在当前页面的上层"/>
</Canvas>
</Popup>
</Grid>
<Button Content="打开" Grid.Row="1" Height="72" HorizontalAlignment="Left" Margin="64,523,0,0" Name="btnOpen" VerticalAlignment="Top" Width="160" Click="btnOpen_Click" />
<Button Content="关闭" Height="72" HorizontalAlignment="Left" Margin="230,523,0,0" Name="btnClose" VerticalAlignment="Top" Width="160" Grid.Row="1" Click="btnClose_Click" />
</Grid>

六.ScrollView:  滚动查看器控件,也算是一个容器控件,它可以用来拖动显示其所包含的控件的内容。

        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Canvas>
<!-- A large TextBlock. -->
<!-- A large TextBlock. -->
<TextBlock Canvas.Top="60" Canvas.Left="-50" Width="400" TextWrapping="Wrap"
Text="I am the very model of a modern Major-General, I've information vegetable, animal, and mineral, I know the kings of England, and I quote the fights historical, From Marathon to Waterloo, in order categorical; I'm very well acquainted, too, with matters mathematical, I understand equations, both the simple and quadratical, About binomial theorem I'm teeming with a lot o' news, With many cheerful facts about the square of the hypotenuse." Margin="78,0,78,201" />

<!-- The same large TextBlock, wrapped in a ScrollViewer. -->
<!-- It can be scrolled in either direction, since VerticalScrollBarVisibility -->
<!-- has a default value of Visible. -->

<ScrollViewer BorderBrush="Green" BorderThickness="5" Height="200" Width="300" HorizontalScrollBarVisibility="Auto" Canvas.Top="400" Canvas.Left="80">
<TextBlock Width="300" TextWrapping="Wrap"
Text="I am the very model of a modern Major-General, I've information vegetable, animal, and mineral, I know the kings of England, and I quote the fights historical, From Marathon to Waterloo, in order categorical; I'm very well acquainted, too, with matters mathematical, I understand equations, both the simple and quadratical, About binomial theorem I'm teeming with a lot o' news, With many cheerful facts about the square of the hypotenuse." />
</ScrollViewer>
</Canvas>
</Grid>

 

转载于:https://www.cnblogs.com/DebugLZQ/archive/2012/03/28/2422391.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ Template

引言 模板&#xff08;Template&#xff09;指C程序设计设计语言中采用类型作为参数的程序设计&#xff0c;支持通用程序设计。C 的标准库提供许多有用的函数大多结合了模板的观念&#xff0c;如STL以及IO Stream。 函数模板 在c入门中&#xff0c;很多人会接触swap(int&, …

《数据结构与算法分析》学习笔记(二)——算法分析

一、对算法分析方法的最简单的理解和使用方法 1、首先大家可能一般会被那些数学的概念搞晕&#xff0c;其实简单理解下来&#xff0c;就是假设任何语句执行的效率都是一样的&#xff0c;所以设定每一个语句的执行时间都是一个时间单位&#xff0c;那么只要计算这个程序到底执行…

Oracle--plsql异常处理

•什么是异常?Oracle中出现错误的情形通常分为编译时错误&#xff08;compile-timeerror&#xff09;和运行时错误(run-time error)&#xff0c;异常是在PL/SQL执行过程中出现的警告或错误。•异常是如何触发的?–发生了一个 Oracle 错误时–使用RAISE语句显式触发•如何处理…

再谈SQL Server中日志的的作用

简介 之前我已经写了一个关于SQL Server日志的简单系列文章。本篇文章会进一步挖掘日志背后的一些概念&#xff0c;原理以及作用。如果您没有看过我之前的文章&#xff0c;请参阅&#xff1a; 浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架 浅谈SQL Server中的事…

树的遍历和图的遍历的异同

一、认识的理清 1、 应该认识到“深度优先”和“广度优先”是算法思想&#xff0c;而递归是实现“深度优先”的一种方法&#xff08;深度优先可以非递归实现&#xff09;&#xff1b; 2、 深度优先搜索也叫深度优先遍历&#xff08;DFS&#xff0c;Depth_Fisrt_Search&#x…

VS2012和XE2013的关联和设置问题

1. 首先要正确安装Microsoft VisualStudio 2012 Intel Parallel Studio XE 2013&#xff0c;其中&#xff0c;先安装VS2012&#xff0c;再安装XE2013。 2.Microsoft Visual Studio 2012 Intel Parallel Studio XE 2013集成检验&#xff1a; 打开&#xff1a;开始所有程序-&…

语文成绩

题目背景 语文考试结束了&#xff0c;成绩还是一如既往地有问题。 题目描述 语文老师总是写错成绩&#xff0c;所以当她修改成绩的时候&#xff0c;总是累得不行。她总是要一遍遍地给某些同学增加分数&#xff0c;又要注意最低分是多少。你能帮帮她吗&#xff1f; //这又跟神器…

最小生成树和最短路径

一、概念的理清 1、图分为连通图和非连通图&#xff0c;我们一般讨论连通图。带权的图叫做网。 2、连通图的生成树&#xff1a;&#xff08;1&#xff09;包含图的所有的n个顶点&#xff1b;&#xff08;2&#xff09;只有n-1条边&#xff0c;且这n-1条边足以构成一棵树&…

推荐一款移动端的web UI控件 -- mobiscroll

用mobiscroll 可实现ios系统自带的选择器控件效果&#xff0c;支持几乎所有的移动平台(iOS, Android, BlackBerry, Windows Phone 8, Amazon Kindle)&#xff0c;当然在pc的浏览器上跑&#xff0c;效果也还不错。建议使用支持css3的浏览器访问^_^ 支持换肤&#xff0c;效果和性…

I2C通信 读写数据过程

在通信之初&#xff0c;主从机必须根据自己的要求约定好通信规则&#xff1a;command的定义和位置、address的位数和位置。 以读写从机寄存器数据为例&#xff1a; 假设从机寄存器地址为8位、从机寄存器也位8位&#xff08;被读取数据为8位&#xff09;&#xff1b; 约定读comm…

C++的运算符重载(转)

C的运算符重载 cc扩展语言 C中预定义的运算符的操作对象只能是基本数据类型。但实际上&#xff0c;对于许多用户自定义类型&#xff08;例如类&#xff09;&#xff0c;也需要类似的运算操作。这时就必须在C中重新定义这些运算符&#xff0c;赋予已有运算符新的功能&#xff0c…

Android 用户界面---样式和主题(Styles and Themes)(二)

样式属性 理解了样式是如何定义的之后&#xff0c;就需要学习<item>元素都定义了那些有效的样式属性类型。你可能已经熟悉了像layout_width和textColor属性&#xff0c;但是还有更多的可以使用的样式属性。 查找应用于指定的View对象的最好的地方是对应的类参考&#xff…

Android应用程序结构总结

2019独角兽企业重金招聘Python工程师标准>>> Android应用程序结构分析 由于是初学者&#xff0c;对于Android应用程序的结构的认识是一穷二白的&#xff0c;对于开发Android应用程序&#xff0c;必须先了解其程序的结构和作用。一下就用一个简单的例子来解剖&#…

递归--整数划分问题

问题描述&#xff1a; 将正整数n表示成一系列正整数之和&#xff1a;nn1n2…nk&#xff0c;其中n1≥n2≥…≥nk≥1&#xff0c;k≥1。正整数n的这种表示称为正整数n的划分。 问题1&#xff1a; 输出整数n的所有可能的划分&#xff0c;如&#xff1a; 输入&#xff1a;6 输出&am…

嵌入式软件开发注意事项一

嵌入式软件开发注意事项一1、首先对测试板进行各方面硬件性能的测试&#xff1a;电源测试&#xff0c;时钟测试等等。要确保硬件最基本的几个性能是正常的&#xff0c;否则后面真的无法进行软件的开发&#xff0c;因为如果你没有确保硬件的正确性&#xff0c;那么后面进行软件调…

Oracle 表空间与数据文件

-- --Oracle 表空间与数据文件 -- /* 一、概念 表空间&#xff1a;是一个或多个数据文件的逻辑集合 表空间逻辑存储对象&#xff1a;永久段-->如表与索引 临时段-->如临时表数据与排序段 回滚段-->用于事物回滚或闪回内存的撤销数据 表空间分类&#xff1a;系统表空间…

简单的深度优先遍历和广度优先遍历

代码来源于《啊哈&#xff01;算法》。 1、深度优先遍历&#xff1a; &#xff08;1&#xff09;无权值 #include<stdio.h> int book[101],n, e[1001][1001], sum; void DFS(int cur) {int h;sum;printf("%d ", cur);//目前所在点进行的操作&#xff0c;可以…

【 2013华为杯编程大赛成都第三组前两题试题及答案】

2013-09-12 16:41:24 题目描述 某省会城市街道纵横交错&#xff0c;为了监控路灯的运行状况&#xff0c;每条街道使用一个数字字符串标识该街道上所有路灯的运行状况。假设路灯只有如下3种状态&#xff08;分别用数字0, 1, 2标识&#xff0c;一盏路灯只对应其中一种状态&#x…

webrtc笔记(1): 基于coturn项目的stun/turn服务器搭建

webrtc是google推出的基于浏览器的实时语音-视频通讯架构。其典型的应用场景为&#xff1a;浏览器之间端到端(p2p)实时视频对话&#xff0c;但由于网络环境的复杂性(比如&#xff1a;路由器/交换机/防火墙等&#xff09;&#xff0c;浏览器与浏览器很多时候无法建立p2p连接&…