创建图像
为了呈现图像,您可以使用 Image 或 ImageBrush 对象
myImage.Source = new BitmapImage( new Uri( " myPicture.jpg " , UriKind.RelativeOrAbsolute));
LayoutRoot.Children.Add(myImage);
您可以直接设置 Source,也可以通过以下 URL 方案之一设置:
-
绝对 URL,例如,http://contoso.com/myPicture.jpg。
-
相对于引用 XAML 文件。在这种情况下,指定不带前导斜杠的相对 URL。例如,Source="myPicture.png" 指定了在程序集中嵌入的与 XAML 文件位于相同文件夹位置的图像文件。还可以在目录结构中向上遍历,只要可以在 XAP 结构中解析路径。例如,Source="../resources/myPicture.png" 指定了来自 Resources 文件夹的图像文件,该文件夹与 XAP 找到其 XAML 文件组件的文件夹位置同级。
-
相对于 XAP 文件应用程序根。在这种情况下,指定带有前导斜杠的相对 URL,该 URL 从 XAP 结构根处开始路径解析。例如,Source="/resources/myPicture.png" 指定了来自在 XAP 结构中定义的根级 resources 目录的源。推荐用此方法取代以前的相对 URL 方法,因为对 XAML 文件的 XAP 位置的更改(例如将 XAML 从页定义移入资源字典)不会中断相对于 XAP 结构根的引用。此方法通常用于作为 Content 生成操作放入 XAP 的图像源。
-
指定一个程序集,然后通过引用 component; 标记在其概念根位置输入程序集结构。这是最为可靠的 URL 指定方式,因为即便您在程序集之外完全重构 XAML(例如,如果您将此部分 XAML 移入某个附属程序集以进行本地化),以这种方式仍可解析为图像目标。例如,Source="MySilverlightApp;component/myPicture.png" 引用了应该作为下载程序集提供的程序集 MySilverlightApp。您指定的程序集可以是 XAP 中的主应用程序程序集,换言之,即 Silverlight 项目输出路径声明的同一程序集名称。不要在此 URI 方案中指定 .dll 扩展名后缀。
裁切图像
可以通过使用 Clip 属性裁切掉图像输出的某个区域来裁切图像
< Image Source = " Water_lilies.jpg "
Width = " 200 " Height = " 150 " >
< Image.Clip >
< EllipseGeometry RadiusX = " 100 " RadiusY = " 75 " Center = " 100,75 " />
</ Image.Clip >
</ Image >
</ Grid >
应用 OpacityMask
您可以将 OpacityMask 应用于某一图像,以便创建多种与不透明度相关的照片蒙板技术,例如虚光照效果
下面的 XAML 示例在图像上放置一个居中的椭圆屏蔽,这样,图像将使用径向梯度在椭圆边缘淡出到为零的不透明度。
< Image.OpacityMask >
< RadialGradientBrush Center = " 50,50 " GradientOrigin = " 50,50 " MappingMode = " Absolute " RadiusX = " 90 " RadiusY = " 50 " >
< GradientStop Color = " #00000000 " Offset = " 25 " />
< GradientStop Color = " #20000000 " Offset = " 12 " />
< GradientStop Color = " #FF000000 " Offset = " 0 " />
</ RadialGradientBrush >
</ Image.OpacityMask >
</ Image >
使用图像绘制 (ImageBrush)
您使用 ImageBrush 来使用图像绘制采用画笔的区域。例如,ImageBrush 可用于 Canvas 或 InkPresenter 的 Background 属性的值
< TextBlock FontFamily = " Verdana " FontSize = " 72 "
FontStyle = " Italic " FontWeight = " Bold " >
SHRUBBERY
< TextBlock.Foreground >
< ImageBrush ImageSource = " forest.jpg " />
</ TextBlock.Foreground >
</ TextBlock >