Silverlight Opacity Mask


Get Microsoft Silverlight

XAML

<UserControl x:Class="SilverlightOpacityMask.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  
    
    <Grid x:Name="LayoutRoot" Background="White" Width="300" Height="600">

        <StackPanel Orientation="Vertical">        

            <Image  Source="cherries.jpg">           
             
                <Image.OpacityMask>
                    <RadialGradientBrush x:Name="brush1"  
                         GradientOrigin="0.5,0.5">
                        <GradientStop Color="#FF000000" Offset="0.5"></GradientStop>
                        <GradientStop Color="#50000000" Offset="0.75"></GradientStop>
                    </RadialGradientBrush>
                </Image.OpacityMask>
            
            </Image>

            <Button Content="Move" 
                  Width="50" 
                  Height="30" 
                  Margin="20" 
                  Click="Button_Click"></Button>

        </StackPanel>

    </Grid>
</UserControl>	
	
	
	

Page.xaml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SilverlightOpacityMask
{
    public partial class Page : UserControl
    {

        

        public Page()
        {
            InitializeComponent();
                                  
        }


        int i = 0;

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            move();                                 
        }

        private void move()
        {

            if (i == 0)
            {
                brush1.SetValue(RadialGradientBrush.GradientOriginProperty, new Point(1.0, 1.0));
                i = 1;
            }
            else if (i == 1)
            {
                brush1.SetValue(RadialGradientBrush.GradientOriginProperty, new Point(0.0, 0.0));
                i = 0;
            }
          
        }


    }
}