static void SetupShape(Shape shape, Brush brush, Pen pen) { shape.Fill = brush; if (pen != null) { DoubleCollection dashArray = new DoubleCollection(); foreach (double value in pen.DashArray) dashArray.Add(value); shape.Stroke = pen.Brush; shape.StrokeThickness = pen.Thickness; shape.StrokeDashArray = dashArray; shape.StrokeDashOffset = pen.DashOffset; shape.StrokeStartLineCap = pen.StartLineCap; shape.StrokeEndLineCap = pen.EndLineCap; shape.StrokeDashCap = pen.DashCap; shape.StrokeLineJoin = pen.LineJoin; shape.StrokeMiterLimit = pen.MiterLimit; } }
/// <summary> /// Constructs a new GuidelineSet object. /// This constructor is internal for now, till we'll find a solution /// for multi-path dynamic guideline implementation. If/when it'll happen, /// it should become "public" so that the next constructor (without "isDynamic' /// argument) may go away. /// </summary> /// <param name="guidelinesX">Array of X coordinates that defines a set of vertical guidelines.</param> /// <param name="guidelinesY">Array of Y coordinates that defines a set of horizontal guidelines.</param> /// <param name="isDynamic">Usage flag: when true then rendering machine will detect animation state and apply subpixel animation behavior.</param> internal GuidelineSet(double[] guidelinesX, double[] guidelinesY, bool isDynamic) { if (guidelinesX != null) { // Dynamic guideline is defined by a pair of numbers: (coordinate, shift), // so the legnth of array should be even. Debug.Assert(!isDynamic || guidelinesX.Length % 2 == 0); GuidelinesX = new DoubleCollection(guidelinesX); } if (guidelinesY != null) { // Dynamic guideline is defined by a pair of numbers: (coordinate, shift), // so the legnth of array should be even. Debug.Assert(!isDynamic || guidelinesY.Length % 2 == 0); GuidelinesY = new DoubleCollection(guidelinesY); } IsDynamic = isDynamic; }
public GuidelineSet(double[] guidelinesX, double[] guidelinesY) { GuidelinesX = new DoubleCollection(guidelinesX); GuidelinesY = new DoubleCollection(guidelinesY); }