分析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相对其夫级控件的边距。其效果能更灵活一些更能做自适应布局。
容器控件多的时候可能会用混淆。明确上一个概念“夫控件只对其子控件产生布局”。

posted @ 2009-02-17 12:18  王喆(nasa)  阅读(1980)  评论(0编辑  收藏  举报