示例#1
0
 public SolidColorBrushImpl(Perspex.Media.SolidColorBrush brush, SharpDX.Direct2D1.RenderTarget target)
 {
     PlatformBrush = new SharpDX.Direct2D1.SolidColorBrush(
         target,
         brush?.Color.ToDirect2D() ?? new SharpDX.Mathematics.Interop.RawColor4(),
         new SharpDX.Direct2D1.BrushProperties
     {
         Opacity   = brush != null ? (float)brush.Opacity : 1.0f,
         Transform = target.Transform
     }
         );
 }
示例#2
0
        /// <summary>
        /// Converts a brush to Direct2D.
        /// </summary>
        /// <param name="brush">The brush to convert.</param>
        /// <returns>The Direct2D brush.</returns>
        public static SharpDX.Direct2D1.Brush ToDirect2D(this Perspex.Media.Brush brush, RenderTarget target)
        {
            Perspex.Media.SolidColorBrush solidColorBrush = brush as Perspex.Media.SolidColorBrush;

            if (solidColorBrush != null)
            {
                return(new SharpDX.Direct2D1.SolidColorBrush(target, solidColorBrush.Color.ToDirect2D()));
            }
            else
            {
                // TODO: Implement other brushes.
                return(new SharpDX.Direct2D1.SolidColorBrush(target, new Color4()));
            }
        }
示例#3
0
        public SolidColorBrushImpl(Perspex.Media.SolidColorBrush brush, double opacityOverride = 1.0f)
        {
            var color = brush?.Color.ToCairo() ?? new Color();

            if (brush != null)
            {
                color.A = Math.Min(brush.Opacity, color.A);
            }

            if (opacityOverride < 1.0f)
            {
                color.A = Math.Min(opacityOverride, color.A);
            }

            this.PlatformBrush = new SolidPattern(color);
        }