示例#1
0
        protected override void ApplyInverseScaling()
        {
            //apply inverse scaling to keyframes

            //pan/zoom
            var m  = PanZoomGroup.Transforms[0].Matrix;
            var s1 = new SvgScale(m.Elements[0], m.Elements[3]);

            //min/max
            m = PanZoomGroup.Transforms[1].Matrix;
            var s2 = new SvgScale(m.Elements[0], m.Elements[3]);

            //trackheight
            m = TrackGroup.Transforms[0].Matrix;

            m.Multiply(s2.Matrix);
            m.Multiply(s1.Matrix);
            m.Invert();

            KeyframeDefinition.Transforms[0]  = new SvgMatrix(m.Elements.ToList());
            EaseInDefinition.Transforms[0]    = KeyframeDefinition.Transforms[0];
            EaseOutDefinition.Transforms[0]   = KeyframeDefinition.Transforms[0];
            EaseInOutDefinition.Transforms[0] = KeyframeDefinition.Transforms[0];
            EaseNoneDefinition.Transforms[0]  = KeyframeDefinition.Transforms[0];
        }
示例#2
0
        protected virtual void ApplyInverseScaling()
        {
            //apply inverse scaling to numbers

            //pan/zoom
            var m   = PanZoomGroup.Transforms[0].Matrix;
            var inv = new SvgScale(1 / m.Elements[0], 1);

            var nums = NumberGroup.Children.Where(x => x is SvgText);

            foreach (var num in nums)
            {
                num.Transforms[1] = inv;
            }

            //..to loopregion handler
            LoopStart.Width = 1 / m.Elements[0] * CHandlerWidth;
            LoopEnd.Width   = 1 / m.Elements[0] * CHandlerWidth;
        }