private void OnLineColorChanged(object oldColor, object newColor) { if (updatingPen) { return; } Pen oldPen = Pen; Pen newPen = oldPen != null?oldPen.CloneCurrentValue() : new Pen(); if (newColor is Color) { newPen.Brush = new SolidColorBrush((Color)newColor); } else { // no color - if (AllowNull) { Pen = null; return; } newPen.Brush = new SolidColorBrush(Colors.Transparent); } newPen.Freeze(); Pen = newPen; }
private void OnDashStyleChanged(Pen oldDashStyle, Pen newDashStyle) { if (updatingPen) { return; } Pen oldPen = Pen; Pen newPen = oldPen != null?oldPen.CloneCurrentValue() : new Pen(); newPen.DashStyle = newDashStyle.DashStyle; newPen.Freeze(); Pen = newPen; }
private void OnThicknessChanged(Pen oldThickness, Pen newThickness) { if (updatingPen) { return; } Pen oldPen = Pen; Pen newPen = oldPen != null?oldPen.CloneCurrentValue() : new Pen(); newPen.Thickness = newThickness.Thickness; newPen.Freeze(); Pen = newPen; }
public static Pen GetOutPen(this Pen pen, ReadOnlyCoordinatesSystemManager coordinatesSystemManager) { if (pen?.CloneCurrentValue() is Pen p) { if (GetIn(p)) { p.Thickness *= coordinatesSystemManager.WidthRatio; } return(p); } else { return(null); } }
/* void ILegacyDevice.PushOpacity(double opacity, Brush opacityMask) * { * Debug.Assert(opacityMask == null); * * _ctx.PushOpacity(opacity); * } */ void ILegacyDevice.DrawGeometry(Brush brush, Pen pen, Brush strokeBrush, Geometry geometry) { if (pen != null) { if (strokeBrush == null) { pen = null; } else { pen = pen.CloneCurrentValue(); pen.Brush = strokeBrush; } } _ctx.DrawGeometry(brush, pen, geometry); }
private Pen ReducePen(Pen pen, Rect bounds) { if (PenProxy.IsNull(pen)) { return(null); } Brush b = ReduceBrush(pen.Brush, bounds); if (b == null) { return(null); } if (!Object.ReferenceEquals(b, pen.Brush)) { pen = pen.CloneCurrentValue(); pen.Brush = b; } return(pen); }