Pro Silverlight 3 in C# - XAML Resources
1. The Resources Collection
<UserControl x:Class="EightBall.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <UserControl.Resources> <LinearGradientBrush x:Key="BackgroundBrush"> <LinearGradientBrush.GradientStops> <GradientStop Offset="0.00" Color="Yellow" /> <GradientStop Offset="0.50" Color="White" /> <GradientStop Offset="1.00" Color="Purple" /> </LinearGradientBrush.GradientStops> </LinearGradientBrush> </UserControl.Resources> ... </UserControl>
<Grid x:Name="grid1" Background="{StaticResource BackgroundBrush}">
2.The Hierarchy of Resources
<UserControl x:Class="Resources.ResourceHierarchy" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300"> <Grid x:Name="LayoutRoot" Background="White"> <StackPanel><StackPanel.Resources> <LinearGradientBrush x:Key="ButtonFace"> <GradientStop Offset="0.00" Color="Yellow" /> <GradientStop Offset="0.50" Color="White" /> <GradientStop Offset="1.00" Color="Purple" /> </LinearGradientBrush> </StackPanel.Resources> <Button Content="Click Me First" Margin="5" Background="{StaticResource ButtonFace}"></Button> <Button Content="Click Me Next" Margin="5" Background="{StaticResource ButtonFace}"></Button> </StackPanel> </Grid> </UserControl>
3. Application.Resources
<Application xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SilverlightApplication1.App"> <Application.Resources> <LinearGradientBrush x:Key="ButtonFace"> <LinearGradientBrush.GradientStops> <GradientStop Offset="0.00" Color="Yellow" /><GradientStop Offset="0.50" Color="White" /> <GradientStop Offset="1.00" Color="Purple" /> </LinearGradientBrush.GradientStops> </LinearGradientBrush> </Application.Resources> </Application>
4.Accessing Resources in Code
LinearGradientBrush brush = (LinearGradientBrush)this.Resources["ButtonFace"]; // Swap the color order. Color color = brush.GradientStops[0].Color; brush.GradientStops[0].Color = brush.GradientStops[2].Color; brush.GradientStops[2].Color = color;
SolidColorBrush brush = new SolidColorBrush(Colors.Yellow); this.Resources["ButtonFace"] = brush;
5. Organizing Resources with Resource Dictionaries
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <LinearGradientBrush x:Key="ButtonFace"> <LinearGradientBrush.GradientStops> <GradientStop Offset="0.00" Color="Yellow" /><GradientStop Offset="0.50" Color="White" /> <GradientStop Offset="1.00" Color="Purple" /> </LinearGradientBrush.GradientStops> </LinearGradientBrush> </ResourceDictionary>
<Application xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SilverlightApplication1.App"> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="ElementBrushes.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
<Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="BasicBrushes.xaml" /> <ResourceDictionary Source="ButtonBrushes.xaml" /> </ResourceDictionary.MergedDictionaries> <LinearGradientBrush x:Key="GraphicalBrush1" ... ></LinearGradientBrush> <LinearGradientBrush x:Key="GraphicalBrush2" ... ></LinearGradientBrush> </ResourceDictionary> </Application.Resources>
Book Mark:93