Silverlight拥有一个与Xaml紧密结合的资源系统,通过使用资源我们能够:
- 建立不可见的对象,例如我们可以将一个数据对象定义为资源,然后在其他元素中通过数据绑定来使用这个资源,以在该元素中显示数据对象的信息.
- 可重用的对象,这个简单,就像大家都熟悉的样式一样.
- 便于管理Xaml文件
在Silverlight 中每一个元素都有Resources属性.Resources属性是一个资源字典,在这里我们可以包含各种类型的对象,并使用一个字符串作为他们的索引.
虽然在任何元素中都可以定义Resources属性,但一般来说还是应该在Page级中来定义Resources属性,这样这个Page中的所有元素就都可以使用这个资源了.

1 <UserControl x:Class="EightBall.Page"
2 xmlns="http://schemas.microsoft.com/client/2007"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 Width="400" Height="300">
5 <UserControl.Resources>
6 <LinearGradientBrush x:Key="BackgroundBrush">
7 <LinearGradientBrush.GradientStops>
8 <GradientStop Offset="0.00" Color="Yellow" />
9 <GradientStop Offset="0.50" Color="White" />
10 <GradientStop Offset="1.00" Color="Purple" />
11 </LinearGradientBrush.GradientStops>
12 </LinearGradientBrush>
13 </UserControl.Resources>
14

15 </UserControl>
看看上面的代码,我们首先要定义该资源是应用于哪种类型的元素,然后在为这个资源定义一个索引.

<LinearGradientBrush x:Key="BackgroundBrush">
接下来就可以使用扩展标记语法来使用这个资源了.

<Grid x:Name="grid1" Background="{StaticResource BackgroundBrush}">
需要注意的是在WPF中资源分为静态资源和动态资源,但在Silverlight中只有静态资源.