示例#1
0
 public void ResetClip()
 {
     if (clipLayer != null)
     {
         Control.PopLayer();
         clipLayer.Dispose();
         clipLayer  = null;
         clipBounds = new RectangleF(Control.Size.ToEto());
     }
 }
示例#2
0
        /// <summary>
        /// Pushes an opacity value.
        /// </summary>
        /// <param name="opacity">The opacity.</param>
        /// <returns>A disposable used to undo the opacity.</returns>
        public IDisposable PushOpacity(double opacity)
        {
            if (opacity < 1)
            {
                var parameters = new LayerParameters
                {
                    ContentBounds = RectangleF.Infinite,
                    MaskTransform = Matrix3x2.Identity,
                    Opacity = (float)opacity,
                };

                var layer = new Layer(_renderTarget);

                _renderTarget.PushLayer(ref parameters, layer);

                return Disposable.Create(() =>
                {
                    _renderTarget.PopLayer();
                    layer.Dispose();
                });
            }
            else
            {
                return Disposable.Empty;
            }
        }