예제 #1
0
        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;
            }
        }
예제 #2
0
        /// <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;
        }
예제 #3
0
 public GuidelineSet(double[] guidelinesX, double[] guidelinesY)
 {
     GuidelinesX = new DoubleCollection(guidelinesX);
     GuidelinesY = new DoubleCollection(guidelinesY);
 }