深入探索Silverlight中的画笔、变换与位图技术
1. ImageBrush的使用与图像拉伸
ImageBrush的ImageSource属性和Image元素的Source属性工作方式相同,你可以使用指向项目中嵌入文件或网络位置的URI来设置它。需要注意的是,Silverlight会尊重图像中的任何透明度信息,例如支持PNG文件中的透明区域。
当使用ImageBrush绘制单元格背景时,图像会被拉伸以适应填充区域。若网格比图像原始尺寸大,图像可能会出现缩放伪像(如模糊);若网格形状与图片宽高比不匹配,图片会变形以适应。你可以通过修改ImageBrush.Stretch属性来控制这种行为,该属性可选值如下表所示:
| 名称 | 描述 |
| — | — |
| Fill | 图像在宽度和高度上拉伸以完全适应其容器,这是默认值。 |
| None | 图像不拉伸,使用其原始大小(超出部分会被裁剪)。 |
| Uniform | 宽度和高度按比例增加,直到图像到达容器边缘,保持图像宽高比,但可能会有额外空白空间。 |
| UniformToFill | 宽度和高度按比例增加,直到形状填满所有可用的高度和宽度,保持图像宽高比,但图像可能会被裁剪以适应区域。 |
如果图像绘制得比填充区域小,图像会根据AlignmentX和AlignmentY属性对齐,未填充区域保持透明。这在使用Uniform缩放且填充区域形状不同(会在顶部或侧面出现空白条),或使用None且填充区域大于图像时会发生。
2. 透明度的实现方式
Silverlight支持真正的透明度,你可以通过以下几种方式使元素部分
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



