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 } ); }
/// <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())); } }
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); }