DrawingContext.Pop Method

The following example shows the effect of the Pop command.

using System;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Navigation;



namespace SDKSample

{





    public class PopExample : Page

    {



        public PopExample()

        {

            Pen shapeOutlinePen = new Pen(Brushes.Black, 2);

            shapeOutlinePen.Freeze();



            // Create a DrawingGroup

            DrawingGroup dGroup = new DrawingGroup();



            // Obtain a DrawingContext from  

            // the DrawingGroup. 

            using(DrawingContext dc = dGroup.Open())

            {

                // Draw a rectangle at full opacity.

                dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(0, 0, 25, 25));



                // Push an opacity change of 0.5.  

                // The opacity of each subsequent drawing will 

                // will be multiplied by 0.5.

                dc.PushOpacity(0.5);



                // This rectangle is drawn at 50% opacity.

                dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(25, 25, 25, 25));



                // Push an opacity change of 0.5.  

                // The opacity of each subsequent drawing will 

                // will be multiplied by 0.5. Note that 

                // push operations are cumulative (until they are 

                // popped). 

                dc.PushOpacity(0.5);



                // This rectangle is drawn at 25% opacity (0.5 x 0.5). 

                dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(50, 50, 25, 25));



                // Changes the opacity back to 0.5.

                dc.Pop();



                // This rectangle is drawn at 50% opacity.

                dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(75, 75, 25, 25));



                // Changes the opacity back to 1.0.

                dc.Pop();



                // This rectangle is drawn at 100% opacity.

                dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(100, 100, 25, 25));

            }



            // Display the drawing using an image control.

            Image theImage = new Image();

            DrawingImage dImageSource = new DrawingImage(dGroup);

            theImage.Source = dImageSource;



            this.Content = theImage;



        }









    }



}

 

 

The following illustration shows this example's output:

Rectangles drawn with different opacity values

你可能感兴趣的:(context)