第二十章 如何在 Silverlight 控件中显示图像?
在 Silverlight 中, image 控件可以用来显示图像。用法 和前面的相似。使用 Image 控件的语法如下:
< Grid x : Name ="Layout" Width ="250" Height ="250" Background ="GREEN" >
< Image x : Name ="MyImage" Source ="/AppleTree.png" Stretch ="Uniform" ></ Image >
</ Grid >
Image.Source 属性
Source 属性用于指定图片的位置。
< Image x : Name ="blue" Source ="/images/AppleTree.png" Stretch ="None"/>
< Image x : Name ="green" Source ="images/AppleTree.png" Stretch ="None" />
以反斜杠开头的图片需要放在 ClientBin 目录下的相应文件夹里;不以反斜杠开头的图片应该放在 Silverlight 项目的目录下的相应文件夹里。
反斜杠开头 的相对路径,代表的相对位置是应用程序运行的根目录,即 .xap 压缩包内 , 若在这其中寻找不到要引用的文件,则相对路径的回退机制( fallback mechanism )自动在在 .xap 所在的目录 ,即为 ClientBin 目录中寻找加以引用。两个位置都没有,才会发生错误。不 以 "/" 开头 ,则代表的相对位置是引用该图片的 XAML 文件所在的目录 , 即 page.xaml 文件所在的目录。
Image.stretch 属性
Stretch 属性可能有以下值:
1. None
这样不会 改变 image 的大小。如果图像大小大于容器的大小,图像在容器中会被裁减以适应容器的大小。
2. Fill
在这种情 况下,图像会扩大以填充容器区域。在宽高比方面(宽度和高度比)将不能保持。
3. Uniform
这是默认 值。在这种情况下,图像将根据容器的大小调整,但保持宽高比不变。因此,可能在容器和 图片周围可能有空白。
4. UniformToFill
在这种情 况下, 图像将改变大小并填充容器,如果需要的话宽高比将做一些微调。
Width 和 Height 属性
图片的宽、高属性将 覆盖 Stretch 属性。如果指定宽、高属性,则 Stretch 属性被忽略。
Image.Clip 属性
Image 控件的 Clip 属性在 Silverlight 中被用来确定图 片部分显示和其他部分隐藏。
看下面的例子如何以 椭圆的形式显示图像:
< Grid x : Name ="Layout" Width ="200" Height ="220" Background ="YELLOW" >
< Image x : Name ="MyImage" Source =" Images/AppleTree.png" Stretch ="Fill">
< Image.Clip >
< EllipseGeometry x : Name ="Ellipse" RadiusX ="100" RadiusY ="100"
Center ="100,110"/>
</ Image.Clip >
</ Image >
</ Grid >
上 面代码运行后呈现图像如下: