zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    java源码之HashMap和HashTable的异同
    java源码之HashMap
    进制转换
    java基本数据类型及其包装类
    java实例化对象的五种方法
    20 栈的压入、弹出序列
    19 包含min函数的栈
    18 顺时针打印矩阵(记忆,常忘记)
    16 树的子结构(这题多复习)
    15合并两个排序的链表
  • 原文地址:https://www.cnblogs.com/xpvincent/p/4276456.html
Copyright © 2011-2022 走看看