分析Silverlight Button控件布局

分析Silverlight Button控件布局

答:关于按钮自适应

Silverlight也算一个比较开放的技术。Button控件其实也是一些标准的Grid、Canvas、Rectangle、TextBlock组成的。(图1)

要做到按钮的宽度和高度根据字体大小和字数自动适应,其实就是调整好Layout,做以一个能自适应的界面。在Silverlight中Grid这个容器是能自适应的。是把字体TextBlock放到一个Grid中,对这个TextBlock设置相当Grid的边距,就好像是html中Margin的概念一样。(图2)别的元素也是一样在TextBlock下层是有Rectangle等元素是来制作背景色、边框色,在TextBlock的Rectangle用来制作高光,他们都容纳在Grid中。

在微软官方的控件中TextBlock用contentPresenter来代替。contentPresenter可以简单的理解成一个容器但是只能容纳一个对象。这个对象也可以再是一个容器比如Canvas、Grid、StackPanel等。

其中上边所提到的元素都没有强行的设置他们的Width和Height。

这样在使用中有两种制定他们大小的方法

一是设置最外层的Grid的Width和Height属性,因为内部的元素都是相当Grid做的布局,所以他们都会自适应外层的宽高。指定里边的一个元素的尺寸也会对外层的Grid产生作用。

再一个是设置Grid相对其夫级控件的边距。其效果能更灵活一些更能做自适应布局。

容器控件多的时候可能会用混淆。明确上一个概念“夫控件只对其子控件产生布局”。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端杂货铺

绝对定位下的盒模型

元素被绝对定位,那么元素将会脱离正常流(normal flow),并依据包含块来定位。包含块的概念及其判定可以看这里。 在负margin的应用一文中,我们提到了...

2424
来自专栏HTML5学堂

一步步实现静态页面布局

本文内容概要: 1 CSS选择器 2 盒模型 3 浮动 4 页面布局案例 5 课后习题 上周我们详解的讲解了一个网站的开发流程以及如何使用标签来进行一个网页的布...

69210
来自专栏lzj_learn_note

Android ImageSpan与TextView同一行图片居中

在开发中常常会遇到标签(图片)+文字的需求,实现方式一般采用SpannableString的方式来实现。 这时候会遇到图片ImageSpan没有办法居中的问题。...

2542
来自专栏偏前端工程师的驿站

CSS魔法堂:深入理解line-height和vertical-align

前言 一直听说line-height是指两行文本的基线间的距离,然后又说行高等于行距,最近还听说有个叫行间距的家伙,@张鑫旭还说line-height和vert...

3008
来自专栏老马寒门IT

Html5 学习系列(五)Canvas绘图API快速入门(2)

Canvas绘图API Demos 上一篇文章中,笔者已经给大家演示了怎么快速用Canvas的API绘制一个矩形出来。接下里我会在本文中给各位介绍Canvas的...

2648
来自专栏前端知识分享

第167天:canvas绘制柱状图

2163
来自专栏cnblogs

Css3新特性应用之视觉效果

一、单侧阴影 box-shadow属性的应用,格式:h-shadow v-shadow blur spread color inset属性取值介绍 h-sah...

2019
来自专栏CodingBlock

Android查缺补漏(View篇)--自定义View利器Canvas和Paint详解

上篇文章介绍了自定义View的创建流程,从宏观上给出了一个自定义View的创建步骤,本篇是上一篇文章的延续,介绍了自定义View中两个必不可少的工具Canvas...

40612
来自专栏猛牛哥的博客

HTMLayout 界面贴图技术

2704
来自专栏糊一笑

深入常用CSS声明(一) —— Background

一直对一些自己常用的css声明掌握得不是很全,只知道常用的一些属性和值,但是对于其他的用法确实一知半解,这篇文章旨在扫盲,先不说有多深的理解,至少做到能够看到这...

4165

扫码关注云+社区

领取腾讯云代金券