Canvas絕對佈局

  定位Canvas.Top、Canvas.Left

  ZIndex屬性

  若制定2個控制項重疊,那麼後聲明控制項會覆蓋先聲明的控制項。此時可以使用Canvas.ZIndex屬性來改變它們之間的顯示順序。值越大顯示的越前

  Canvas佈局也有其自身缺點,它使用於其中包含的UI元素比較固定的情形,如果你想向其中添加更多的控制項,或者UI元素需要改變大小或能隨著流覽器視窗的大小進行改變,此時Canvas就顯得有些力不從心。我們只能通過編寫代碼來控制UI元素的位置來應付這種動態的場景,這將是一件極其費時又費力的事情。更好的辦法通常使用其他帶有相關功能的內建語義的佈局面板,如StackPanel和Grid

<Canvas >
<Button Canvas.Top="15" Canvas.Left="15"
Canvas.ZIndex="30" Content="按钮定位_前声明"></Button>
<Button Canvas.Top="10" Canvas.Left="10" Content="按钮定位_后声明"></Button>
</Canvas>

  相對佈局

  StackPanel

  StackPanel控制起來比較簡單,并沒有其他的設置。顯然,StackPanel不適合對整個頁面驚醒佈局,他適合對頁面上某一個很小的部份進行控制。

<StackPanel Orientation="Horizontal">
  
      <Button Content="O(∩_∩)O哈哈~" Margin="10" Width="90" Height="30"></Button>
  
      <Button Content="O(∩_∩)O哈哈~" Margin="10" Width="90" Height="30"></Button>
  
<Button Content="O(∩_∩)O哈哈~" Margin="10" Width="90" Height="30"></Button>
  
</StackPanel>

  Grid

  Grid控件是SilverLight中最強大靈活的佈局面板,它支持用多行和多列的方式排布頁面元素,與HTML裏的Table相似,不同的是,他不需要講UI元素內嵌到元素表格中,而是通過<Grid.RowDefinitions>和<Grid.ColumnDefinitions>屬性來定義Grid的行和列。這連個屬性要在<Grid>標籤內,然後就可以使用XAML的附件屬性語法制定UI元素屬於哪一行、那一列。索引是從0開始

<Grid>
  
    <Grid.RowDefinitions>
  
         <RowDefinition Height="30"></RowDefinition>
  
         <RowDefinition Height="30"></RowDefinition>
  
         <RowDefinition Height="30"></RowDefinition>
  
         <RowDefinition Height="30"></RowDefinition>
  
         <RowDefinition Height="30"></RowDefinition>
  
    </Grid.RowDefinitions>
  
    <Grid.ColumnDefinitions>
  
         <ColumnDefinition Width="90"></ColumnDefinition>
  
         <ColumnDefinition Width="90"></ColumnDefinition>
  
         <ColumnDefinition Width="90"></ColumnDefinition>
  
         <ColumnDefinition Width="90"></ColumnDefinition>
  
         <ColumnDefinition Width="90"></ColumnDefinition>
  
         <ColumnDefinition Width="90"></ColumnDefinition>
  
         <ColumnDefinition Width="*"></ColumnDefinition><!--自动适应-->
  
    </Grid.ColumnDefinitions>
  
         <Button Content="你" Grid.Row="3" Grid.ColumnSpan="2"></Button><!—合併單元格-->
  
         <Button Content="是" Grid.Row="4"></Button>
  
         <Button Content="你" Grid.Row="3" Grid.Column="6" Grid.RowSpan="2"></Button>
  
</Grid>

  边距Margin

  一般来说,有3中设置方式

  壹.如果左、上、右、下 4个方向的空白呢便要设置相同值可以使用 Margin=”10”

  贰.左右2边以及上下2边相同,可以用逗号分开2个数值来设置 Margin=”10,15”

  参.4个方向边不一致,需要使用逗号分隔4个数值进行设置,顺序左、上、右、下

  边框

  Border对象,可以轻鬆在另一元素周围绘製边框或背景,嵌套的子元素必须从UIElement派生。同时还可以指定他的一些基本属性,如Width、Height、BorderThickness及BackGround。设置CornerRadius属性将边框的角改为圆角并通过Padding属性在Border中定位对象。

<Border Grid.Column="4" Grid.RowSpan="3"
  
CornerRadius="10" Background="Red" Margin="10" Padding="20">
  
    <TextBlock Text="悲催啊"></TextBlock>
  
</Border>

  注意:使用Border元素時,須要注意,一個Border只能有唯一的直接子元素。如果想在Border內放入多個元素,必須先將一個容器(如Canvas 或 StackPanel容器)放入該Border元素內,軟后再將多個元素放入該容器對象內。

silverlight_容器的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网页提交中文到WEB容器的经历了些什么过程....

    先准备一个网页 <html><meta http-equiv="Content-Type" content="text/html; charset=gb ...

  3. [Spring]IoC容器之进击的注解

    先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...

  4. 深入理解DIP、IoC、DI以及IoC容器

    摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念.通过本文我们将一起学 ...

  5. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  6. JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题

    1.鼠标进入容器方向的判定 判断鼠标从哪个方向进入元素容器是一个经常碰到的问题,如何来判断呢?首先想到的是:获取鼠标的位置,然后经过一大堆的if..else逻辑来确定.这样的做法比较繁琐,下面介绍两种 ...

  7. docker4dotnet #2 容器化主机

    .NET 猿自从认识了小鲸鱼,感觉功力大增.上篇<docker4dotnet #1 前世今生&世界你好>中给大家介绍了如何在Windows上面配置Docker for Window ...

  8. 深入分析Spring 与 Spring MVC容器

    1 Spring MVC WEB配置 Spring Framework本身没有Web功能,Spring MVC使用WebApplicationContext类扩展ApplicationContext, ...

  9. Set容器--HashSet集合

    Set容器特点: ①   Set容器是一个不包含重复元素的Collection,并且最多包含一个null元素,它和List容器相反,Set容器不能保证其元素的顺序; ②   最常用的两个Set接口的实 ...

随机推荐

  1. CANopen学习——OSI模型复习

    CanOpen协议实现了物理层和数据链路层,OSI模型是完整的7层. OSI模型网络七层包括物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 物理层:提供信息传输的物理连接通道,包括使用的 ...

  2. Caffe源码解析3:Layer

    转载请注明出处,楼燚(yì)航的blog,http://home.cnblogs.com/louyihang-loves-baiyan/ layer这个类可以说是里面最终的一个基本类了,深度网络呢就是 ...

  3. python高级之网络编程

    python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及其源码分析 1.网络通信概念 说 ...

  4. Centos6 服务器病毒查杀命令历史

    top whereis vhowazeclu ll /usr/bin/v* more /usr/bin/vhowazeclu ps aux|grep vhowa ps aux|grep vhowaze ...

  5. JSP之WEB服务器:Apache与Tomcat的区别 ,几种常见的web/应用服务器

    注意:此为2009年的blog,注意时效性(针对常见服务器)     APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等 ...

  6. Lrc2Srt字幕转换精灵

    最近喜欢下点英文的MV,可字幕太少了,可lrc文件却很丰富,写了一个转换精灵 下载地址:http://files.cnblogs.com/files/rovedog/Lrc2Srt.zip 需要.ne ...

  7. docker创建镜像

    手动创建: docker run -d -p mynginx:v2 nginx rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest- ...

  8. 使用TaskManager爬取2万条代理IP实现自动投票功能

    话说某天心血来潮想到一个问题,朋友圈里面经常有人发投票链接,让帮忙给XX投票,以前呢会很自觉打开链接帮忙投一票.可是这种事做多了就会考虑能不能使用工具来进行投票呢,身为一名程序猿决定研究解决这个问题. ...

  9. Android开发自学笔记(Android Studio) 目录

    开发环境如下: 操作系统:Windows 10 Pro IDE:Android Studio 1.3.X 或更高版本 其它请参见文章说明. 1. 环境搭建 1.1 (番外)AndroidStudio常 ...

  10. noi-openjudge[4.7搜索]怀表问题

    为啥我觉得这是个DP-.f[i][j][k][l]表示四种零件分别用了i,j,k,l个的方案数.然后发现这样不能保证表一定能接在表链首尾,也不知道状态之间如何转移,那么加一维变成f[i][j][k][ ...