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

你可能感兴趣的:(silverlight)